w1100n
This site is best viewed in Google Chrome
wiloon, 11/6/2013 12:31

偶然有一机会发现form表单的target的用法,可以实现当前页表单提交而不进行跳转刷新。代码如下,首页在页面里准备一form表单和一iframe Java代码   <form action=”提交的action” method=”post” target=”theID”> ………………… </form> <iframe name=”theID” style=”display: none;”></iframe> 提交到action后,action返回一串javascript语句 Java代码   String script = “<script>alert(‘ok!’);</script>”;         response.getOutputStream().write(script.getBytes(“utf-8”)); alert(‘ok’)将在当前页执行。原理是form提交后的结果在target指定的iframe里执行 而iframe将其隐藏。这样提交后的效果就和无刷新的效果一样。 http://vsp.iteye.com/blog/1570466

wiloon, 10/10/2013 17:12

一种快速编写HTML/CSS代码的方法   使用仿CSS选择器的语法来快速开发HTML和CSS html+css 代码快速编写 html+css 代码快速编写 ——由Sergey Chikuyonok开发。 Zen Coding由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上下文无关的HTML标签对匹配器。 展开缩写   展开缩写功能将类似CSS的选择器转换为XHTML代码。术语“缩写”可能会有点儿难以理解。为什么不直接称之为“CSS选择器”呢?嗯,首要原因是语义化:“选择器”意为选择一些东西,但是在这里我们事实上是生成 一些东西,是写一个长代码的较短的替代。其次,它只是使用真实的CSS选择器语法的一个小的子集,并添加了一些新的操作符。 这里是一个支持的属性和操作符的列表: E元素名称(div, p);E#id使用id的元素(div#content, p#intro, span#error);E.class使用类的元素(div.header, p.error.critial). 你也可以联合使用class和idID: div#content.column.width;E>N子代元素(div>p, div#footer>p>span);E+N兄弟元素(h1+p, div#header+div#content+div#footer);E*N元素倍增(ul#nav>li*5>a);E$*N条目编号 (ul#nav>li.item-$*5);正如你能看到的,你已经知道如何使用Zen Coding了:只是些一个简单的仿CSS选择器。 元素类型Zen Coding有两个主要的元素类型:“片段(snippets)” 和 “缩写(abbreviations)”。片段就是随意的代码碎片,而缩写是标签定义。通过片段,你可以写出你想要的任何代码,它也会照你写的格式输出;但是你必须手动的格式化它(使用n 和t实现换行和缩进) 并将${child}变量放到你想要输出子元素的地方,就像这样:cc:ie6>style。如果你不使用${child}变量,子元素将会输出于代码片段的后面。 有了缩写,您必须编写标记定义,而且语法是非常重要的。通常,你必须写一个简单的带有所有默认的属性的标签,比如: <a href=””></a>。当Zen Coding被加载后,它会解析一个标签定义到一个描述该标签的名字、属性(包括它们的顺序)以及该标签是否为空的特定的对象中。所以,如果你写<img src=”” alt=”” />,你会告诉Zen … Continue reading

wiloon, 9/8/2013 9:59

http://web.archive.org/web/20110721191046/http://particletree.com/features/rediscovering-the-button-element/ http://www.peterbe.com/plog/button-tag-in-IE Here’s a page describing the differences (basically you can put html into a <button></button>) And an other page describing why people avoid <button></button> (Hint: IE6) Another IE problem when using <button />: And while we’re talking about IE, it’s got a couple of bugs … Continue reading

wiloon, 8/10/2013 18:34

经常碰到JQuery里的trim()函数在firefox支持,但是在IE里不支持 其主要原因是写法不对,下面是错误的写法 Java代码   var content = $(‘#content’).val(); if(content.trim() == ”)    alert(‘空’); 上面的写法在firefox下不会报错,但在ie下确会报错 正确的写法应该为 Java代码   var content = $(‘#content’).val(); if($.trim(content) == ”)   alert(‘空’); 或者为: Java代码   var content = $(‘#content’).val(); if(jQuery.trim(content) == ”)  alert(‘空’); http://vsp.iteye.com/blog/1262441

wiloon, 7/24/2013 13:44

http://hi.baidu.com/iburu/item/5deb176de673b209a1cf0fb7 1.如何固定表格宽度[HTML] <TABLE style=”table-layout: auto | fixed”> auto: 默认值 fixed: 宽度固定,截断超出的内容 <TABLE style=”word-break: normal | break-all | keep-all”> normal: 默认值,按字词截断换行 break-all: 强行截断并换行 keep-all: 不截断不换行 style=”TABLE-LAYOUT: fixed; WORD-WRAP: break-word” 2. <table style=”word-break:break-all” width=200> <tr><td>askldjflkajsdflkjasdlkfjaskldjflaksdjflkasjdfklajsdflkjasdlkfjaslkdjf</td></tr> </table> 3. 固定表格宽和列宽,就可以自动实现。 <style> table{width:800px} td{width:80px} </style> … Continue reading

wiloon, 7/15/2013 19:11

JavaScript中后退的写法:history.back()或者history.go(-1)。 这种写法在IE上即可实现我们想要的效果,但是在FireFox和Chrome就会变得很悲催了。 FireFox: 只需要改成如下方式: <a href=”#” onclick=”window.history.back()”>返回</a>         Chrome: Chrome比FireFox更难搞: <a href=”#” onclick=”window.history.back(); return false;”>返回</a> 本人分析:对于Chrome来说,首先执行window.history.back(),执行完成之后再接着执行href=”#”,所以无法返回。加上 return false之后将不再执行href=”#”,便能正常返回。

wiloon, 7/5/2013 19:23

  http://www.candoudou.com/archives/161 jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。 官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该用attr(),什么时候该用prop()呢? 大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = “disabled”,checked=”checked”,比如用attr(“checked”)获取checkbox的checked属性时选中的时候可以取到值,值为”checked”但没选中获取值就是undefined。 jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,以前我们使用attr获取checked属性时返回”checked”和””,现在使用prop方法获取属性则统一返回true和false。 那么,什么时候使用attr(),什么时候使用prop()? 1.添加属性名称该属性就会生效应该使用prop(); 2.是有true,false两个属性使用prop(); 3.其他则使用attr();

wiloon, 6/12/2013 21:20

先什么都不说。一起来看看d3.js神奇效果。 打开https://github.com/mbostock/d3/wiki/Gallery 这里有很多d3.js的Demo。 这个东西图表确实很不错吧? 简单介绍之前 先说明一点东西。 1.   d3.js 只适合现代浏览器,(意思是说它对IE8已经IE8以下版本支持不好)。但对IE9,chrome,FireFox,Opera 和基于webkit的苹果浏览器Safari都能支持。 2.  图标是基于矢量图形的,采用svg进行画图。所以在了解d3.js之前你需要知道svg有关知识。看看这个就够了http://www.w3school.com.cn/svg/index.asp 3.  如果你用d3.js,我就当你是一个有点点经验的程序猿了,不是菜鸟,所以。。。。懂一点Jquery那是必须的。。。 4.  本系列博客将根据官方文档的介绍顺序来写。 5. 重要的一点,本人也是一边学一边写,出现点错误是不可避免。若有发现,请指出。在博客后面留言就可以了。谢谢! 6. 争取每周末更新两篇。(希望了解更多可点击此处) 好吧。有了以上说明,先下载一个d3.js (连js库都没有能说个j8) 下载地址http://d3js.org/d3.v3.zip 下载好了?? 国际惯例 Hello World

wiloon, 6/11/2013 12:20

Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。下面将之前写过的一个线程通信的例子替换成用Condition实现(Java线程(三)),代码如下: 在Condition中,用await()替换wait(),用signal()替换notify(),用signalAll()替换notifyAll(),传统线程的通信方式,Condition都可以实现,这里注意,Condition是被绑定到Lock上的,要创建一个Lock的Condition必须用newCondition()方法。 这样看来,Condition和传统的线程通信没什么区别,Condition的强大之处在于它可以为多个线程间建立不同的Condition,下面引入API中的一段代码,加以说明。 这是一个处于多线程工作环境下的缓存区,缓存区提供了两个方法,put和take,put是存数据,take是取数据,内部有个缓存队列,具体变量和方法说明见代码,这个缓存区类实现的功能:有多个线程往里面存数据和从里面取数据,其缓存队列(先进先出后进后出)能缓存的最大数值是100,多个线程间是互斥的,当缓存队列中存储的值达到100时,将写线程阻塞,并唤醒读线程,当缓存队列中存储的值为0时,将读线程阻塞,并唤醒写线程,这也是ArrayBlockingQueue的内部实现。下面分析一下代码的执行过程: 1. 一个写线程执行,调用put方法; 2. 判断count是否为100,显然没有100; 3. 继续执行,存入值; 4. 判断当前写入的索引位置++后,是否和100相等,相等将写入索引值变为0,并将count+1; 5. 仅唤醒读线程阻塞队列中的一个; 6. 一个读线程执行,调用take方法; 7. …… 8. 仅唤醒写线程阻塞队列中的一个。 这就是多个Condition的强大之处,假设缓存队列中已经存满,那么阻塞的肯定是写线程,唤醒的肯定是读线程,相反,阻塞的肯定是读线程,唤醒的肯定是写线程,那么假设只有一个Condition会有什么效果呢,缓存队列中已经存满,这个Lock不知道唤醒的是读线程还是写线程了,如果唤醒的是读线程,皆大欢喜,如果唤醒的是写线程,那么线程刚被唤醒,又被阻塞了,这时又去唤醒,这样就浪费了很多时间。 在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步器),确切的说是ReentrantLock的一个内部类继承了AbstractQueuedSynchronizer,ReentrantLock只不过是代理了该类的一些方法,可能有人会问为什么要使用内部类在包装一层? 我想是安全的关系,因为AbstractQueuedSynchronizer中有很多方法,还实现了共享锁,Condition(稍候再细说)等功能,如果直接使ReentrantLock继承它,则很容易出现AbstractQueuedSynchronizer中的API被无用的情况。 … Continue reading

wiloon, 6/10/2013 12:58

http://taligarsiel.com/Projects/howbrowserswork1.htm http://ux.sohu.com/topics/50972d9ae7de3e752e0081ff

wiloon, 6/6/2013 12:12

$(‘#WindowOpen’).toggle( function() { $(‘#login_uname, #login_pass’).attr(“disabled”,”disabled”); }, function() { $(‘#login_uname, #login_pass’).removeAttr(“disabled”); });

wiloon, 6/1/2013 12:22

http://www.webdeveloper.com/forum/showthread.php?152923-PDF-within-a-DIV

wiloon, 5/20/2013 19:47

POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。 而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。 同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP更好地支持了从多个不同设备中随时访问新邮件。   http://blog.csdn.net/forlong401/article/details/7545180 很多时候一直对POP3、SMTP、IMAP和Exchange等迷迷糊糊的。 下面就整理说明一下:当前常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。下面分别对其进行简单介绍。 1、SMTP协议 SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循SMTP协议的发送邮件服务器。SMTP认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。SMTP目前已是事实上的E-Mail传输的标准。 2、POP协议 POP邮局协议负责从邮件服务器中检索电子邮件。它要求邮件服务器完成下面几种任务之一:从邮件服务器中检索邮件并从服务器中删除这个邮件;从邮件服务器中检索邮件但不删除它;不检索邮件,只是询问是否有新邮件到达。POP协议支持多用户互联网邮件扩展,后者允许用户在电子邮件上附带二进制文件,如文字处理文件和电子表格文件等,实际上这样就可以传输任何格式的文件了,包括图片和声音文件等。在用户阅读邮件时,POP命令所有的邮件信息立即下载到用户的计算机上,不在服务器上保留。  POP3(Post Office Protocol 3)即邮局协议的第3个版本,是因特网电子邮件的第一个离线协议标准。 3、IMAP协议 互联网信息访问协议(IMAP)是一种优于POP的新协议。和POP一样,IMAP也能下载邮件、从服务器中删除邮件或询问是否有新邮件,IMAP克服了POP的一些缺点。例如,它可以决定客户机请求邮件服务器提交所收到邮件的方式,请求邮件服务器只下载所选中的邮件而不是全部邮件。客户机可先阅读邮件信息的标题和发送者的名字再决定是否下载这个邮件。通过用户的客户机电子邮件程序,IMAP可让用户在服务器上创建并管理邮件文件夹或邮箱、删除邮件、查询某封信的一部分或全部内容,完成所有这些工作时都不需要把邮件从服务器下载到用户的个人计算机上。支持种IMAP的常用邮件客户端有:ThunderMail,Foxmail,Microsoft Outlook等。 4、Exchange Exchange是个消息与协作系统的系列产品。包括服务器产品、客户端产品等等。 Exchange Server 是一个设计完备的邮件服务器产品, 提供了通常所需要的全部邮件服务功能。除了常规的 SMTP/POP 协议服务之外,它还支持 IMAP4 、LDAP 和 … Continue reading

wiloon, 5/12/2013 11:36

install postfix internet site, wiloon.com; sudo dpkg-reconfigure postfix 4、编辑main.cf  在mydestination后加上wiloon.com,成为这个样子:  myhostname myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。你也可以指定该值,需要注意的是,要指定完整的主机名。如: myhostname = mail.wiloon.com 用下面的命令测试,其实就是测试25端口是否打开 telnet localhost 25 Postfix将在终端中显示如下提示,这样你就可以用来键入SMTP命令. Trying 127.0.0.1… Connected to mail.fossedu.org. Escape character is ‘^]’. 220 localhost.localdomain ESMTP Postfix (Ubuntu) 用下面的命令测试postfix ehlo localhost mail from: … Continue reading

wiloon, 5/9/2013 8:53

引:http://morganchengmo.spaces.live.com/blog/cns!9950CE918939932E!2144.entry http://www.cnblogs.com/cxd4321/archive/2009/03/11/1408425.html Browser: F5 vs Ctrl+F5 在浏览器里中,按F5键或者点击Toobar上的Refresh/Reload图标(简称F5),和做F5同时按住Ctrl键(简称Ctrl+F5),效果是明显不一样的,通常Ctrl+F5明显要让网页Refresh慢一些,到底两者有什么区别呢? 在上一篇技术文章中,说到了Expires、Last-Modified/If-Modified-Since和ETag/If-None-Match这些HTTP Headers,F5/Ctrl+F5和这些有莫大关系。 假如我第一次访问过http://www.example.com,这个网页是个动态网页,每次访问都会去访问Server,但是它包含一个一个静态资源http://www.example.com/logo.gif,浏览器在显示这个网页之前需要发HTTP请求获取这个logo.gif文件,返回的HTTP response包含这样的Headers: Expires: Thu 27 Nov 2008 07:00:00 GMT Last-Modified: Fri 30 Nov 2007 00:00:00 GMT 那么浏览器就会cache住这个logo.gif文件,直到2008年11月27日7点整,或者直到用户有意清空cache。 下次我再通过bookmark或者通过在URI输入栏直接敲字的方法访问http://www.example.com的时候,浏览器一看本地有个logo.gif,而且它还没过期呢,就不会发HTTP request给server,而是直接把本地cache中的logo.gif显示了。 F5的作用和直接在URI输入栏中输入然后回车是不一样的,F5会让浏览器无论如何都发一个HTTP Request给Server,即使先前的Response中有Expires Header。所以,当我在当前http://www.example.com网页中按F5的时候,浏览器会发送一个HTTP Request给Server,但是包含这样的Headers: If-Modified-Since: Fri 30 Nov 2007 00:00:00 GMT 实际上Server没有修改这个logo.gif文件,所以返回一个304 … Continue reading

wiloon, 4/4/2013 17:27

一些css的定义,可以根据需要自己选择。 //显示单双行显示不同背景色【方法一】: // $(“#UL_id li:even”).attr(“className”,”redClass”); //显示单双行显示不同背景色【方法二】: $(“#UL_id li:even”).addClass(“redClass”); <ul id=”UL_id”> <li>单数</li> <li>双数</li> <li>双数</li> </ul> odd:单 even:双

wiloon, 3/21/2013 16:53

张三李四 //获取选中项 var ddlSelected = $(‘#ddlMember option:selected’); //选中项的文本 var ddlSelectedText=ddlSelected.text(); //选中项的值 var ddlSelectedVal=ddlSelected.val();

wiloon, 3/21/2013 16:42 | Tag:

主要的事件 jQuery UI Autocomplete有一些事件,可用于在一些阶段进行额外的控制: create(event, ui):Autocomplete创建时,可以在此事件中,对外观进行一些控制 search(event, ui): 在开始请求之前,可以在此事件中返回false来取消请求 open(event, ui):Autocomplete的结果列表弹出时 focus(event, ui):Autocomplete的结果列表任意一项获得焦点时,ui.item为获得焦点的项 select(event, ui):Autocomplete的结果列表任意一项选中时,ui.item为选中的项 close(event, ui):Autocomplete的结果列表关闭时 change(event, ui):当值改变时,ui.item为选中的项 http://www.cnblogs.com/lwme/archive/2012/02/12/jquery-ui-autocomplete.html

wiloon, 3/20/2013 12:34 | Tag:

CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中。HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义。 作为一门标记性语言,CSS 的语法相对简单,对使用者的要求较低,但同时也带来一些问题:CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少 CSS 编写经验而很难写出组织良好且易于维护的 CSS 代码,造成这些困难的很大原因源于 CSS 是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。LESS 为 Web 开发者带来了福音,它在 CSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,LESS 可以让我们用更少的代码做更多的事情。 http://www.w3cplus.com/css/less http://www.cnblogs.com/hooray/archive/2011/12/02/2272212.html

wiloon, 3/5/2013 18:00

css 字母大写及其它 text-transform:uppercase; capitalize :  将每个单词的第一个字母转换成大写,其余无转换发生 uppercase :  转换成大写 lowercase :  转换成小写

next page
辽ICP备14012896