美国时间1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期开发完成,可以下载使用。压缩版本jQuery Minified 29KB,不压缩版本jQuery Regular(用于阅读和调试)207KB。由于jQuery已经成为目前最流行的JavaScript库,得到广泛的支持,新版本的发布当然非常引人注目。
jQuery创始人John Resig在CSDN TUP活动上演讲(相关报道)
另外,微软和Google也为jQuery 1.5提供了CDN支持,可以直接导入:
微软:http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.min.js
Google:https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js (发稿时为止尚未上线)
新版本的主要改进可以参见变更日志:http://api.jquery.com/category/version/1.5/。
John Resig总结了几点比较引人注目的变化。
1. Ajax重写
Ajax模块完全进行了重写。新增一个jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如JSONP请求,jXHR对象也可以进行处理。(详情可以参见:jQuery.ajax文档)
此外,系统的可扩展性大大增强,可以附加各种数据处理器、过滤器和传输机制,为开发新的Ajax插件提供了方便。(详情参见:Ajax扩展文档)
2. 延迟对象
延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此现在通过jQuery编写Ajax程序将自动获得这一功能。
开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。
例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了:
// Assign handlers immediately after making the request,
// and remember the jxhr object for this request
var jxhr = $.ajax({ url: "example.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jxhr.complete(function(){ alert("second complete"); });
此外,使用jQuery.Deferred还可以开发自己的延迟对象。更多详情参见:延迟对象文档。
3. jQuery.sub()
jQuery 1.5提供了一种创建和修改jQuery副本的方式。可以用来添加不向外部公开的方法,或者对jQuery的某些方法进行重新定义以提供新功能,或者提供更好的封装、避免名称空间冲突。当然,也可以用来开发插件,但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂。
值得注意的是,sub函数并不提供真正的隔离,所有方法、数据、调用仍然依靠jQuery本身来支持。
4. 遍历性能提高
在新版本中.children(), .pre(), .next()几个常用的遍历函数性能有了显著提高。比如.children()的数据如下所示:
详细的测试用例和数据可以参考这里。
5. 内部开发系统
John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。
有意思的是,此前UglifyJS开发者曾经公布过自己的测试结果,表明对jQuery的压缩结果UglifyJS要比Closure略大(都在72KB左右),但运行速度快得多,而且Closure不太安全。看来,这段时间UglifyJS的进展也很快啊。
对了,如果你在使用中发现问题,可以直接到这里报告bug:http://bugs.jquery.com/。另外,也可以到Reddit上参与讨论,别忘了,John Resig同学是那里的版主,随时盯着呢。
【延伸阅读】
jQuery 1.5的改进细节
学习jQuery必须知道常用的几种方法
Web开发者必知的12款jQuery插件
免费电子书:jQuery Fundamentals(英文)
分享到:
相关推荐
变化包括一个重写的Ajax模块,划分 jQuery子类的能力,以及许多其他功能增强,修复各种内存泄漏,性能改进和加强跨浏览器的兼容。鼓励测试该版本的用户提供反馈和报告他们遇到的任何错误。 该版本最大改进兼容IE9
这里的“plugins”是指扩展jQuery功能的各种第三方模块,它们通常是为了解决特定问题或者实现特定效果而创建的。 【描述】:“NULL” 由于描述为空,我们无法得到更多关于这些插件的具体信息。不过,通常来说,一...
$.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,...
$.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,Ajax...
- jQuery 1.5:重写了AJAX模块,增强了扩展性和性能。 - jQuery 1.6:更新了属性模块,引入新对象和方法。 - jQuery 1.7:引入了简洁的.on()和.off() API处理事件绑定。 - jQuery 1.8及以后的版本:逐渐对API进行...
"bui重写 jquery"这个项目就是针对一款名为BUI的前端框架进行的一次重要改进。BUI,全称为Business UI,最初设计时采用了MVC(Model-View-Controller)架构模式,旨在为开发者提供一套强大的组件化和模块化的开发...
《servlet-Ajax-jQuery学习手册》是一份专注于Web开发核心组件的教学资料,涵盖了servlet、Ajax以及jquery的入门与实践技巧。本文档旨在帮助读者快速掌握这三个技术的基本概念、架构、实现以及部署等关键知识点,...
ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。 但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为...
- 对于一些重要的Ecshop功能模块(如购物车、订单等),可以通过修改其源代码中的函数名称来避免与jQuery发生冲突。例如将`$.fn`改名为`ecshop.fn`。 3. **使用jQuery的No Conflict模式**: - 在引入jQuery之前,...
随着版本迭代,jQuery增加了对响应式设计、模块化开发等现代Web趋势的支持,虽然现在有Vue、React、Angular等新型框架的竞争,但jQuery在许多项目中仍然是不可或缺的工具。 三、PHP与jQuery的结合 1. 数据交互:...
- 核心文件被拆分成多个模块,如attribute.js、css.js等。 - **新特性**: - 常用方法的性能大幅提升。 - 更易于使用的设置函数。 - 对Ajax和JSON处理进行了改进。 - 改善了.attr()方法的性能。 - jQuery()...
3. "AJAX无刷新更新":通过jQuery或ASP.NET AJAX库,可以实现部分页面的异步更新,提升用户体验。 4. "自定义错误处理":ASP.NET允许开发者设置全局错误处理,捕获并处理运行时可能出现的异常。 5. "邮件发送功能...
7. **Apache**:Apache是世界上最常用的HTTP服务器软件,`ApacheMenu_zh_CN.chm`可能是关于配置、管理Apache服务器的中文指南,涵盖了模块、虚拟主机、URL重写和安全设置等内容。 这些资源对于学习和工作在Web开发...
**Squery框架1.0.1版**是一个针对前端开发的轻量级框架,它集成了JavaScript、Jquery、Ajax和插件控件等技术,旨在简化Web应用程序的开发流程,提高开发效率。该框架在1.0版本的基础上进行了全面重构,提升了性能和...
这可能需要JavaScript库如jQuery或Ajax技术来实现异步通信。 9. **错误处理**: - 编程中应处理各种异常情况,如文件类型不匹配、存储空间不足、网络中断等,并向用户返回友好的错误信息。 10. **性能优化**: -...
ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。 但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为...
从1.5版本开始,jQuery加入了Deferred功能,让事件处理队列更加的完善。并用这个机制重写了Ajax模块。虽然还没轮到Ajax,但是接下来的事件处理函数中牵扯到了这个机制,所以提前看这段代码。
9. **Ajax异步通信**:使用JavaScript的XMLHttpRequest对象或jQuery的$.ajax()实现页面无刷新更新。 10. **邮件发送**:通过`mail()`函数发送电子邮件,或者使用PHPMailer库发送更复杂的邮件,包括附件和HTML内容。...
开发者在项目中实现了基于三层架构的系统,结合SWFUpload实现无刷新图片上传、JQuery UI、URL重写、CKeditor、Ajax、盘古分词和Lucene.NET全文检索等技术,提升了用户体验和系统性能。 3. 武汉江汉区常青花园小区...
11. **AJAX与jQuery**:使用ASP.NET AJAX扩展和jQuery库提升Web应用的交互性和响应速度。 12. **Web API**:了解如何创建RESTful服务,支持JSON或XML数据交换,用于构建API驱动的应用。 13. **单元测试与持续集成*...