jQuery 1.3 版正式发布

jQuery官方人员在经过了一段时间的测试和完善后,今天终于正式发布jquery1.3,我还没有来得及试用,不过看了介绍还是很令人兴奋的。相比1.2.6版本,这次的程序改动非常大,性能又一次得到大的提升。

其中几个比较重要的改动包括:
  1. 集成Sizzle选择器引擎

    sizzlejs是一个纯JS实现的CSS高速选择器引擎,其性能要胜过目前网络上大多数的选择器引擎,它是一个独立的js库。jQuery官方测试结果为:sizzlejs的查询速度相比jQuery的选择器引擎提升了49%。

  2. Live Event持久化事件

    Live Event的概念是由reglib所提倡和实现的一种事件机制(实现方式是“事件代理+元素过滤”)。其英文介绍为:

    it lets you "register" an event handler against a CSS selector. Like CSS, once the above code is "declared", the event handling behavior takes effect globally。

    它提倡创建一种类似CSS behavior实现原理的事件机制,即事件的绑定时间与页面当前状态无关,一旦通过选择器为特定类型的元素绑定一个事件,则该事件在任何时间(全局)都有效,无论页面是否已经load完成(绑定元素是否已经生成)、或者该元素是后来在页面中动态创建的。例如通过如下方式为p元素绑定了click事件后,$("p").live("click", function(){alert('1')});则在页面完成后通过js动态增加的p元素,单击时也会弹出1。采用Live Event使得程序更易用而且执行效率更高。jQuery采用sizzleJS的过滤引擎,其速度相比jQuery原来的实现方式提高了30倍左右。

     

  3. 重构jQuery事件系统的代码

    jQuery1.3对其原来的事件系统进行了重构,新增了一个jQuery.Event对象,该对象机会包含了几乎所有W3C兼容的事件,而且能够更好的运行在各种浏览器中。

  4. 重写与html注入相关的代码

    在实际开发中发现,jQuery中有关html注入部分的代码效率比较低,因此jQuery1.3对该部分进行优化和修正。在1.3版本中,所有与html“注入”相关的代码(如append/prepend/before/after等)基本全部重写,相比之前版本,速度大约提高了6倍。

  5. 重写offset方法,不但实现了更好的浏览器兼容,而且实现更快速的元素定位,速度大约提升3倍
  6. 彻底摒弃了“浏览器类型探测”(Browser Sniffing)的做法

    在实现跨浏览器的代码中,我们很多时候需要根据不同的浏览器类型来使用不同的方法,这里的判断方式有两种,一种是浏览器类型探测(userAgent),另一种是特性检测。由于第一种方法存在诸多的问题,因此现在一般推荐采用特性检测的方式来实现。

    jQuery1.3中有关通过浏览器类型探测的代码全部改为了特性检测,并建议用户放弃对jQuery.browser的使用(尽管1.3仍然保留),而且新增了jQuery.support方法以便编写跨浏览器兼容的代码。

以上是jQuery几处较为重要的改动。在1.3中还有很多改动,有些特性的改动可能导致与旧版程序的兼容问题,还有一些新增和修改的程序接口,有关更具体的信息,建议大家到jQuery Blog看看详细说明,这里不再赘述。

posted @ 2009-03-26 22:45  锐洋智能  阅读(1165)  评论(0编辑  收藏  举报