锁定老帖子 主题:jQuery 1.5发布 Ajax模块重写
精华帖 (0) :: 良好帖 (11) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-05
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(英文) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-02-09
我也随时关注着JQUERY的信息,压缩后才29K,不错不错
|
|
返回顶楼 | |
发表时间:2011-02-09
我有点担心会越来越庞大。
|
|
返回顶楼 | |
发表时间:2011-02-09
怎么学习这个呢,买本书?
|
|
返回顶楼 | |
发表时间:2011-02-09
一直在追随,从来没用过。
|
|
返回顶楼 | |
发表时间:2011-02-09
Army 写道 我有点担心会越来越庞大。
已经越来越大了,mini版本都有80多K |
|
返回顶楼 | |
发表时间:2011-02-10
ma_ru_long 写道 怎么学习这个呢,买本书?
看看API就行了。 |
|
返回顶楼 | |
发表时间:2011-02-10
还要等一段时间才能用..
毕竟jqueryui之类的依然还是用的1.4.4版本. 再考虑到1.4.4和1.5的兼容性.除非未来能做新的项目. 不然还是老老实实的用1.4.4吧 |
|
返回顶楼 | |
发表时间:2011-02-10
老项目遗留,目前还在用1.3。
|
|
返回顶楼 | |
发表时间:2011-02-10
superhanliu 写道 一直在追随,从来没用过。
一直在听说,从来没见过。 |
|
返回顶楼 | |