jQuery历史版本

摘要:
jQuery1.0:该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。jQuery1.1:这一版大幅简化了API。jQuery1.1.3:这次小版本变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。jQuery1.2:这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。jQuery1.5:该版本修复了83个bug,解决了460个问题。v重写事件eventhandlers不再作为一个对象属性保存在jQuery的内部对象里。
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的逻辑分离。

jQuery 1.5(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对像(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建系统的改进。

jQuery 1.6(2011年5月3日):重写了Attribute 模块和大量的性能改进。

1.6新版本中的部分重要改进:

  • attr()、val()和data()方法有了更好的性能;
  • 在attr()方法中支持Boolean属性;
  • 添加了钩子函数,允许对attr()和val()方法进行扩展;
  • map()方法添加了对对象的支持(将JavaScript对象的属性映射到函数)
  • 允许使用相对值(“+=”,“-=”)更新CSS;
  • 添加了deferred.always(), deferred.pipe()方法,减少了代码量,提高了代码易读性;
  • 同步动画 – 现在所有动画都同步到相同的时间间隔. 使用新的浏览器功能,动画也更顺畅;
  • find(),closest()和is()可接收所有的DOM元素和JQuery对象作为参数。

不幸的是,其中包含了部分破坏性的变更,团队已经在官方更新中用单独的章节强调了它们:

变更JQuery 1.5.2 示例JQuery 1.6 示例
data()方法使用破折号创建驼峰格式。
data-max-value="15" 创建{ max-value: 15 }data-max-value="15" 创建{ maxValue: 15 }
区分了Property与Attribute。attr()方法现在不能用于获取preperty的值。为了处理property的值,引入了prop()和removeProp()方法。如果复选框被选中,checkbox.attr("checked")返回(true)
checkbox.attr("checked")返回空字符串。
要判别是否选中,需在事件处理程序中使用
$(this).prop("checked")或
$(this).is(":checked")。

不出意外的话,第二项变更将会影响到现有打算升级到1.6的那些项目。

另附:

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 中出现的对象循环逻辑问题已经得到解决.

免责声明:文章转载自《jQuery历史版本》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GSON实现String和JSON转换ubuntu安装配置aria2下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用HTML5和jQuery插件Reel实现一个超酷的星际争霸2兵种动画360度预览效果

今天继续给大家介绍HTML5和jQuery插件结合使用生成的图形特效,这里我继续使用星际争霸2的图片元素给大家介绍一个360度全景预览兵种的特效实现,希望大家喜欢!请大家多多留言! 在线演示在线下载 友情提示:以上演示中图片使用较大,如果加载不流畅,请下载到本地运行。 如果你不清楚什么是360度全景预览或者不明白Reel是什么插件的话,请参考这篇文章:分...

基于jQuery的tooltips插件--poshytip

摘要:   分享一款在项目中使用的tooltips插件--poshytip,这是一款基于jQuery的插件,其特点是简单易用,支持浏览器:IE6+, FF 2+, Opera 9+, Safari 3+, Chrome,并且带有六种皮肤的提示框 Install:   下载poshytip插件,解压之后将文件夹src拷贝到项目中,然后引入js和css文...

jQuery操作DOM对象

1.jQuery中的DOM操作 jQuery对JavaScript中的DOM操作进行了封装 2.设置和获取样式值 1.使用css()为指定的元素设置样式值或获取样式值 $(this).css("border","5px solid #f5f5f5"); 或 $(this).css({"border":"5px solid #f5f5f5","...

jQuery同步Ajax带来的UI线程阻塞问题及解决办法

俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下。   事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return。基本的逻辑剥离出来是这样的: function get...

每日技术总结:jquery datetimepicker,微博QQ好友QQ空间微信等分享接口

前言: 1.jquery datetimepicker 今天遇到一个日期控件格式的问题,默认选中显示的并不是设定的值,而是当天的日期。于是去查了一遍文档。 参考文章:jquery datetimepicker 配置参数 官方文档:DateTimePicker jQuery plugin select date and time (找了很久) 耗时2小时,翻...

jquery聚焦文本框

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &...