jQuery 历史版本

原文:http://blog.sina.com.cn/s/blog_5f93dbd90100lz7g.html

jQuery 1.0(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。

jQuery 1.1(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的方法数量。

jQuery 1.1.3(2007年7月):这次小版本变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。

jQuery 1.2(2007年9月):这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够支持对效果的更灵活定制,而且借助新增的命名空间事件,也使插件开发变得更容易。

jQuery UI(2007年9月):这个新的插件套件是作为曾经流行但已过时的Interface插件的替代项目而发布的。jQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(例如可拖放的界面元素)的工具。

jQuery 1.2.6(2008年5月):这一版主要是将Brandon Aaron开发的流行的Dimensions插件的功能移植到了核心库中。

jQuery 1.3(2009年1月):这一版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升。这一版正式支持事件委托特性。

jQuery 1.3.2(2009年2月):这次小版本升级进一步提升了库的性能,例如改进了:visible/:hidden选择符、.height()/.width()方法的底层处理机制。另外,也支持查询的元素按文档顺序返回。

jQuery 1.4(2010年1月14号对)代码库进行了内部重写组织,开始建立一些风格规范。老的core.js文件被分为attribute.js, css.js, data.js, manipulation.js, traversing.js和queue.js;CSS和attribute的逻辑分离。

 

1.4重要新特性:

  •常用方法的性能大幅提升:重写了大部分较早期的函数;

  •更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;

  •对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;

  •attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进

 JQuery1.42最新版本介绍

  jQuer1.4.2版本修复了1.4版本的一些错误和优化了一些不错的改进,速度比1.4.1版本又提升

  

 

了一倍,该版本对性能做了一些改进,同时增加了一些api ( .delegate() and .undelegate(). ),右图是JQuery各个版本的性能比较:

  jquery1.42新特性:

  加了两个新方法:.delegate() 和.undelegate(). 是对.live() and .die() 的补充. 这两个方法对特定的事件的起到简化。

  范例:

  $("table").delegate("td", "hover", function(){ $(this).toggleClass("hover"); });

  等于使用 .live():

  $("table").each(function(){ $("td", this).live("hover", function(){ $(this).toggleClass("hover"); }); });

  另外,以下代码中,.live() 基本上等同于 .delegate().

  $(document).delegate("td", "hover", function(){ $(this).toggleClass("hover"); });

  变更

  大量代码进行了重写, 提升了性能及修正了一些长期存在的问题。

  提升性能

  每次开发新的jquery版本,我们都努力去持续优化性能,以保证你能用到最高性能的javascript代码。

  在Taskspeed benchmark 的测试中,1.4.2比1.4.1快1倍,比1.3.2快2倍。

  主要是在下面4个方面进行了提升:

  .bind() 和 .unbind().

  .empty(), .remove(), 和 .html().

  插入单个DOM 节点到 document.

  $("body")

  在测试用例中,比较多的用到了 $("body"), .bind(), .unbind()方法,因此测试结果提升比较明显。

  v重写事件

  event handlers 不再作为一个对象属性保存在 jQuery的内部对象里。现在是保存在一个内部的对象数组里。v 现在可以通过调用.data("events") , 将会返回一个对象包含的所有事件类型。

  现在可以使用不同的数据、命名空间、事件类型绑定在同一个handler

  在一个handler清除自己之后,事件handler会继续执行

  不用关联数据或者命名空间到事件handler

  不用再使用代理方法

  事件执行的顺序在所有浏览器中得到保证,Google Chrome 中出现的对象循环逻辑问题已经得到解决.

posted @ 2010-10-26 11:58  db's jim  阅读(267)  评论(0编辑  收藏  举报