手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Javascript

Comet研究

说实话,在看到这个Comet被人提起来的时候,我真的不知道是什么意思。翻开金山词霸,结果求伯君同学告诉我,这是彗星的意思。

彗星?怎么着也不能理解。。。于是乎G了一下,发现原来Comet并不是一个新技术,而是和AJAX一样也是一个炒冷饭的东东。

目前用的最多的使用Comet的大概是两种方法,一种是iframe,一种就是ajax。

用ajax的就没有什么好讲了,无非就是setIntval();定一个时间循环往复,往复循环的用ajax读回数据。

用iframe呢。则是利用现在的一些JS类库(当然不用也可以)生成一个Iframe 的Element,在这个页面里打开一个PHP或者其他的动态网页,再由那个网页不停的生成生成再生成,然后通过iFrame的window.parent.xxx.innerHtml = 'this...value...';通过这种方法将iframe里得到的内容生成到主页面上。

细看看这两种,哪种不是炒冷饭?只是冠以一个好听的名字而己,自从2001年,网络聊天室开始有无刷新聊天时,iframe取得数据返回主页面这种方法就早己经存在。AJAX虽然是最近几年的新酒,但何尝不是原来的那些方法的集合?只是以前可能用的是setIntval定时用window.location.reload();来进行页面刷新,现在是用AJAX取回数据再通过innerHtml来更新DIV区域而己。

自此,对Comet有点失望。毕竟对这些都只是一些简单的封装,没有什么新的东西。

 

Tags: iframe, ajax, comet

IE和Firefox下event乱谈

本文属于多次转摘的文章,来自于Javaeye,但具体地址不明。文章写的挺详细,适合经常在IE和FF下面进行开发的人员。这么多种的浏览器呀,害死多少人。。。

» 阅读全文

jQuery的bind函数

jQuery学习之bind

在mootools里面,如果要为某个DOM或者HTML标签等绑定一个操作用的是addEvents,移除一个事件的时候用的是removeEvents,在jQuery里面就相对比较简单,直接用bind函数和unbind函数就行了。

例如为一个button添加一个click。可以这样操作 

XML/HTML代码
  1. <input type='button' id='myBtn'>  

这是一个button,现在我们要为他添加一个事件

JavaScript代码
  1. <script>   
  2. $('#myBtn').bind("click",function(){   
  3.     alert('click');   
  4. });   
  5. </script>  

这样,我们就为这个button绑定了一个click的事件。

bind函数可以有三个参数,当第二个参数不是一个函数,而是一个数据对象时,它将默认做为bind第三个参数(函数)的参数。例如:

XML/HTML代码
  1. <script>  
  2. function showAlert(events){   
  3.     alert(events.data.foo);   
  4. }   
  5. $('#myBtn').bind('click',{foo:'click'},showAlert);   
  6. </script>  

点击时,同样会显示:click

这些就是bind的一些基本用法,当然还有一些方法

比如在绑定方法的时候,用的是return false;可以让这个方法失效

 

JavaScript代码
  1. <script>   
  2. $('#myBtn').bind('click',function(){   
  3. return false;   
  4. })   
  5. </script>  

这样,刚才绑定的click又失效了,不过,这种方法往往用在submit提交的时候比较多。

还有一些方法可以取消默认行为和阻止事件起泡:preventDefault 和stopPropagation

例:

JavaScript代码
  1. <script>   
  2. $('#myBtn').bind('click',function(event){   
  3. event.preventDefault();//取消默认的click行为   
  4. });   
  5. $('#myBtn').bind('click',function(event){   
  6. event.stopPropagation();//阻止click事件起泡   
  7. });   
  8.   
  9. </script>  

Tags: jquery

判断JS对象是否存在

在WEB应用中,可能会经常使用一些JS框架,或者使用一些已经存在的变量,如果我全程参与开发,那么自然不存在需要判断变量是否存在的问题,但如果多人开发,或者是写一框架,最后由别人运行,那么势必需要在运行前判断某些我需要用到的变量或者对象啥的是否存在。

最后我的判断方法是采用了Javascript的标准判断,if(typeof(Test) == 'undefined')可以得知是否存在这个变量,当然直接用if(typeof(Test) == 'object')就可以判断是不是对象了。

看了流年写的Base.js才发现,原来也可以这样
function is_object(obj) {
    return (obj.constructor.toString().indexOf("Object")!= -1);
}

毕竟所有的东西,在JS里几乎都可以算是对象,所以这样也能够来进行判断,学习一下……

不过,相对而言,应该是 typeof 更快捷吧

推荐一个Jquery插件:autoComplete

看了我的上篇文章,应该可以知道jQuery还是有很多插件的,其中autoComplete插件就有很多,现在我主要推荐一个:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/,详细的可以看例子:http://dev.jquery.com/view/trunk/plugins/autocomplete/

» 阅读全文

Tags: jquery