在官方的文档里你可以看到更详细的数据,不过在本篇里你可以看到更细节的分析。
==Sizzle,独立的css选择器引擎==
jQuery在之前的版本里已经逐渐酝酿出css选择器模块的独立。因为Sizzle的独立性,jQuery和Dojo开发组也有意通过Sizzle来开展长期合作(也就是共享部分代码)。
Sizzle也兼容之前版本的jQuery,那些依赖于低版本的jQuery的代码并无重写之忧。
Sizzle在最常见的使用场景中,也有了不同程度的性能提高。(什么是最常见使用的场景呢?可以参考http://ejohn.org/blog/selectors-that-people-actually-use/)
==Live,持久化事件绑定==
通常我们在使用jQuery的过程中,新构造的DOMElement也需要重新完成其事件绑定的逻辑。而jQuery 1.3 里的live函数可以让我们用类似于css behavior的方式来为未来要产生的DOMElement绑定事件。(当然你要拿它当css用,也无妨)
随之对应的,解除这种持久化事件绑定的方式可以用die来完成。
在sizzle.js的源码开头的几行,我们可以看到实现的思路。
document.addEventListener("DOMAttrModified", invalidate, false);
document.addEventListener("DOMNodeInserted", invalidate, false);
document.addEventListener("DOMNodeRemoved", invalidate, false);
==Event对象重封装==
jQuery.Event的主要功能被封装。(jQ有分拆IPO的倾向)
==html注入重写==
性能大幅提高(about 6x faster overall)。
还提供了新用法$("<script/>") 以代替$(document.createElement("script"))
==Offset重写==
性能大幅提高(almost 3x jump)
==jQuery.support,浏览器识别==
jQuery.browser是用useragent来识别浏览器,新增的jQuery.support以js的功能来识别浏览器。
==更新==
jQuery UI and the Validation plugin会同步更新。
如果你有依赖低版本的jQuery的代码的话,请阅读potentially-breaking changes
==Downloading==
==不兼容的Changes==
[@attr]不再需要写@了。(个人感觉这是一个很坏的change)
使用trigger( event, [data] )触发的事件现在会造成冒泡。(言下之意就是以前不会,以前没在意这个细节)
ready()不会等待所有的.css文件下载完毕才执行。(页面上的css引用要写在js前面了)
isFunction被简化。
(原来 !!fn && typeof fn != "string" && !fn.nodeName && fn.constructor != Array && /^[\s[]?function/.test( fn + "" )
现在 toString.call(obj) === "[object Function]" ,有很多你想不到的东西的typeof会是"Function")
逗号选择器的顺序有可能改变(因为Browsers that support querySelectorAll (Safari, Firefox 3.1+, Opera 10+, IE 8+),而它们返回的顺序和jQuery现有逻辑不同)
trigger 和 triggerHandler 原来提供的data形参可以接受一个数组,现在必须是类似于options的对象
(原来按以下对象属性的数组也可以被接受,{type: type,target: elem,preventDefault: function(){},stopPropagation: function(){},timeStamp: now()})
"extra"函数被去除(原来就没有写进文档里),如果trigger 和 triggerHandler 里data参数里提供了多余的成员,如{fa:function(){},fb:function(){},fc:function(){},type: type,target: elem,preventDefault: function(){},stopPropagation: function(){},timeStamp: now()},如果该成员isFunction的话,也会随trigger 和 triggerHandler被执行。
interal jQuery.event.trigger不再返回最后一个hander的返回值,只返回true or false(需要的话可以用jQuery.Event 来作为返回值的句柄)
需要在标准模式下运行jQuery,因为有一些函数在quirks mode运行不正确(Safari下甚至如此重要的一些选择器函数都会出错)
==增强特性==
(FEATURES)
===Core===
New queueing methods which you can use to manage existing queues (such as the animation queue) or construct new ones to manage completely separate workflows.(不是很理解有什么个特法)
jQuery 实例对象新增了两个属性selector and .context 。(以唤回你在构造这些对象时的记忆,jQuery( expression, context ) )
===Selector===
新增支持 复杂的not表达式。如 $(":not(a, b)") and $(":not(div a)")
not表达式其实是反向选择器,老实说我觉得这是一个很重要的特性
===Attributes===
jQuery实例对象新增成员函数toggleClass( String class, Boolean switch )
===Traversing===
jQuery实例对象新增成员函数 .closest( selector ) 以定位位置最接近的符合selector的ancestor element(祖先元素)。(会递归匹配parentNode,我原以为parent( [expr] ) 是做这个用的,后来发现parent( [expr] )只是很直白的选出以expr构造出的jQuery实例对象或者jQuery实例对象this的parentNode)
jQuery实例对象成员函数is()可以支持复杂选择器
===Manipulation===
$("<script/>")相当于原来的$(document.createElement("script")),前面介绍过了
===CSS===
Offset 重写了,性能提高,前面介绍过了
===Events===
Live Events
jQuery Event Object
.trigger()冒泡
(前面都介绍过了)
===Effects===
.hide() and .show() 重写,性能提高。
animate更加平滑,因为原来只控制width, height,opacity,现在连margin and padding控制了
未提供duration参数的animate调用不会有渐变,而是直接被同步化(因为原来animate的渐变都是异步的)的设为最终值
.toggle( Boolean switch ) 所有类似于toggle的函数(如toggleClass)都增加了switch这个参数支持,把toggle类的对象分为正反两种状态的话(如采用和不采用,显示和隐藏),if(switch)则为正状态,反之亦然。
参考下面的代码:
var flip = 0;
$("button").click(function () {
$("p").toggle( flip++ % 2 == 0 );
});
原来无switch参数的时候相当于总是( flip++ % 2 == 0 ),现在我们可以自己控制了。
这是一个很好的新增特性。
jQuery.fx.off=true用来禁止所有animate
===Ajax===
jQuery.ajax( options )
options新增了{Function(data, type) dataFilter},可以用来在jQuery.ajax返回data前再处理一下data(比如过滤)
options新增了{Function() xhr},以xhr返回值作为XMLHttpRequest对象。这是一个很有用的增强,在跨域ajax时,一种做法是制造一个假的XMLHttpRequest。
load( url, [data], [callback] )的参数data可以是String了
===Utilities===
新增了jQuery.isArray( obj )函数
===Internals===
不再使用ua来作为识别浏览器的判断
YUI Compressor作为默认jQuery压缩工具
jQuery不再使用.constructor and instanceof(Will help to give jQuery better cross-frame support.)
==TESTING==
brabra
==PERFORMANCE==
css选择器,delegate过滤器,DOM修改操作(尤其是插入),.offset(),.hide()/.show() 都获得了不同程度的性能改进
相关推荐
jQuery1.3的发布进一步巩固了jQuery在Web开发中的地位,吸引了更多的开发者参与,促进了jQuery插件的繁荣。许多优秀的插件如jQuery UI、jQuery Form Plugin等在此版本上运行良好,丰富了开发者的工具箱。 总之,...
jQuery 1.3是这个库的一个重要版本,它在2009年发布,当时被誉为jQuery的最新正式版。这个版本带来了许多性能提升和功能增强,极大地优化了前端开发者的体验,使得JavaScript编程变得更加简单和高效。 **一、jQuery...
3. **兼容性问题**:由于jQuery1.3发布时间较早,某些特性可能不适用于现代浏览器,学习时要关注浏览器兼容性。 4. **社区支持**:尽管是旧版本,jQuery社区仍然有很多关于1.3的资源和解决方案,可以作为学习和解决...
这个“JQuery1.3简体中文CHM”是jQuery 1.3版本的官方API文档的中文版,对于学习和使用该版本的jQuery具有极高的参考价值。 jQuery 1.3 版本发布于2009年,是jQuery发展中的一个重要里程碑。在这个版本中,主要包含...
- **插件开发**:指导如何创建和发布jQuery插件,包括命名空间、扩展API等。 - **最佳实践**:提供编写高效、可维护jQuery代码的建议和技巧。 - **问题解决**:针对常见问题和错误提供解决方案,如浏览器兼容性问题...
jQuery 1.3 是一个重要的JavaScript库版本,它在2009年1月18日发布了中文文档。这个版本的更新主要集中在性能提升、API改进以及新功能的添加上,使得开发者能更高效地进行网页交互和DOM操作。下面我们将深入探讨...
- `jquery-1.3.2-release.zip`:这可能是jQuery 1.3.2的完整发布包,包含了所有相关的文件和文档。 - `jQuery_API`:可能是一个包含jQuery 1.3 API详细说明的文档或目录。 了解和熟练掌握jQuery 1.3中文帮助API,将...
jQuery 1.3是JavaScript库jQuery的一个重要版本,它的发布为开发者带来了许多增强和改进,进一步提升了网页开发的效率和用户体验。在这个版本中,jQuery团队致力于优化性能、增强API功能和修复已知问题,使得这个...
资源名称:jQuery 1.3 中文参考 文档最新CHM版内容简介:jQuery 1.3自从2008年1月14日发布后,后引来了各界的关注。我们也随即投入到翻译文档的工作中来。经过4天的努力,终于完工了。 由于赶上中国农历新年,本人...
在2009年发布的jQuery 1.3版本中,jQuery团队引入了一系列改进和优化,使得这个版本成为了一个里程碑式的更新。 ### 一、jQuery 1.3性能提升 1. **DOM操作优化**:jQuery 1.3 对DOM操作进行了大量的优化,如元素...
这个压缩包文件包含了从jQuery1.3到jQuery1.7的多个版本,这些版本见证了jQuery的发展历程和功能改进。 jQuery1.3版本引入了一些重要的更新和性能提升,比如对CSS选择器的支持更加完善,包括对伪类和属性选择器的...
jQuery 1.3于2008年1月14日发布后,引来了各界的关注。 自从jQuery面世以来,它以其快速、简洁,能够很轻易地处理HTML文档、控制事件、给页面添加动画和Ajax效果等打动着所有关注它的人的心。 一直以来我都是1.1和...
《learning jQuery1.3》是2009年2月发布的一本专注于jQuery 1.3版本的图书,提供PDF高清版本。这本书旨在帮助开发者深入理解并熟练掌握jQuery这一强大的JavaScript库,尤其针对jQuery 1.3这个特定版本进行详细讲解。...
jQuery 1.3的发布标志着该库的一次重要更新,它在性能、兼容性和功能上都有显著提升。首先,我们来了解一下jQuery的核心特性: 1. **选择器**:jQuery以其强大的选择器引擎闻名,1.3版本中继续强化了这一点。它支持...
**jQuery 1.3**是JavaScript库jQuery的一个版本,它在2009年发布,为Web开发提供了更高效、更简洁的DOM操作、事件处理和动画设计方式。这个版本在jQuery的进化历程中占据了一席之地,引入了一些重要的改进和优化。 ...
自2006年发布以来,jQuery 已经成为了前端开发的主流工具之一。而 jQuery UI 则是基于 jQuery 的一个扩展库,提供了丰富的用户界面组件和交互效果。本文将详细介绍 jQuery 1.3 和 jQuery UI 1.6.6 的主要特性和 API...
这里我们关注的是jQuery的1.3版本,这个版本在2009年发布,它在前一版本的基础上进行了一系列改进和增强。 **jQuery的核心特性:** 1. **选择器**:jQuery引入了类似于CSS的选择器,使得开发者可以方便地选取DOM...
jQuery 1.3和1.4.1版本的发布伴随着插件生态的繁荣,如`jQuery UI`、`jQuery Form Plugin`等,极大地丰富了jQuery的功能,使得开发者可以快速构建复杂的Web应用。 ### 9. MXP 文件介绍 "jQuery_API.mxp" 文件可能...
jQuery 1.3 版本是该库的一个里程碑,发布于2009年,带来了许多性能优化和新特性。以下是对这个版本及其相关学习文档的深入解析。 ### 一、核心概念 1. **选择器**: jQuery 的核心在于其强大的选择器引擎,它可以...
**jQuery 1.3 中文 API HTML 版**是针对jQuery 1.3版本的中文文档,这个版本的jQuery在2009年发布,它为开发者提供了丰富的选择器、DOM操作、事件处理、动画效果以及Ajax交互等功能,极大地简化了JavaScript编程。...