`
pfans
  • 浏览: 3458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jQuery 1.5发布 Ajax模块重写

阅读更多
美国时间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(英文)
分享到:
评论
18 楼 lifei6671 2011-02-16  
重写后,Ajax的效率能不能提高呢?能不能兼容之前的函数呢?
17 楼 waiting 2011-02-13  
witcheryne 写道
jQuery一直没找到一个用起来很顺手的Grid插件```
老项目用的还是1.4.2, 表格是自己拼的html


试试 jqGrid
http://www.trirand.com/blog/
16 楼 witcheryne 2011-02-12  
jQuery一直没找到一个用起来很顺手的Grid插件```
老项目用的还是1.4.2, 表格是自己拼的html
15 楼 interjc 2011-02-11  
jquery在转型
14 楼 hymanyung 2011-02-11  
不錯,一直在用,期待更好...
13 楼 siashuayongsheng 2011-02-11  
superhanliu 写道
一直在追随,从来没用过。

me too
12 楼 181054867 2011-02-10  
很好,JQuery很强大
11 楼 maybe... 2011-02-10  
压缩不是还有80多K吗
10 楼 aoliwen521 2011-02-10  
越整越复杂。。
9 楼 lihuan5120 2011-02-10  
superhanliu 写道
一直在追随,从来没用过。

一直在听说,从来没见过。
8 楼 hyl1234 2011-02-10  
老项目遗留,目前还在用1.3。
7 楼 liukai 2011-02-10  
还要等一段时间才能用..
毕竟jqueryui之类的依然还是用的1.4.4版本.
再考虑到1.4.4和1.5的兼容性.除非未来能做新的项目.
不然还是老老实实的用1.4.4吧
6 楼 demonkind 2011-02-10  
ma_ru_long 写道
怎么学习这个呢,买本书?

看看API就行了。
5 楼 jorneyR 2011-02-09  
Army 写道
我有点担心会越来越庞大。

已经越来越大了,mini版本都有80多K
4 楼 superhanliu 2011-02-09  
一直在追随,从来没用过。
3 楼 ma_ru_long 2011-02-09  
怎么学习这个呢,买本书?
2 楼 Army 2011-02-09  
我有点担心会越来越庞大。
1 楼 feikongting 2011-02-09  
我也随时关注着JQUERY的信息,压缩后才29K,不错不错

相关推荐

    jQuery 1.5正式版

    变化包括一个重写的Ajax模块,划分 jQuery子类的能力,以及许多其他功能增强,修复各种内存泄漏,性能改进和加强跨浏览器的兼容。鼓励测试该版本的用户提供反馈和报告他们遇到的任何错误。 该版本最大改进兼容IE9

    长时间收集的jquery plugins(自己稍重写了demo)

    这里的“plugins”是指扩展jQuery功能的各种第三方模块,它们通常是为了解决特定问题或者实现特定效果而创建的。 【描述】:“NULL” 由于描述为空,我们无法得到更多关于这些插件的具体信息。不过,通常来说,一...

    最新jquery.1.8.1

    $.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,...

    最新JQuery版本1.8

    $.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,Ajax...

    李炎恢JQuery合并版(全)

    - jQuery 1.5:重写了AJAX模块,增强了扩展性和性能。 - jQuery 1.6:更新了属性模块,引入新对象和方法。 - jQuery 1.7:引入了简洁的.on()和.off() API处理事件绑定。 - jQuery 1.8及以后的版本:逐渐对API进行...

    bui重写 jquery

    "bui重写 jquery"这个项目就是针对一款名为BUI的前端框架进行的一次重要改进。BUI,全称为Business UI,最初设计时采用了MVC(Model-View-Controller)架构模式,旨在为开发者提供一套强大的组件化和模块化的开发...

    servlet-Ajax-jQuery学习手册

    《servlet-Ajax-jQuery学习手册》是一份专注于Web开发核心组件的教学资料,涵盖了servlet、Ajax以及jquery的入门与实践技巧。本文档旨在帮助读者快速掌握这三个技术的基本概念、架构、实现以及部署等关键知识点,...

    ECShop_V2.7.3_UTF8_完美兼容_jQuery_模式

    ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。 但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为...

    ecshop和jquery冲突的解决方法

    - 对于一些重要的Ecshop功能模块(如购物车、订单等),可以通过修改其源代码中的函数名称来避免与jQuery发生冲突。例如将`$.fn`改名为`ecshop.fn`。 3. **使用jQuery的No Conflict模式**: - 在引入jQuery之前,...

    PHP+jQuery大事记.7z

    随着版本迭代,jQuery增加了对响应式设计、模块化开发等现代Web趋势的支持,虽然现在有Vue、React、Angular等新型框架的竞争,但jQuery在许多项目中仍然是不可或缺的工具。 三、PHP与jQuery的结合 1. 数据交互:...

    jquery历史版本

    - 核心文件被拆分成多个模块,如attribute.js、css.js等。 - **新特性**: - 常用方法的性能大幅提升。 - 更易于使用的设置函数。 - 对Ajax和JSON处理进行了改进。 - 改善了.attr()方法的性能。 - jQuery()...

    asp.net 小模块小功能收藏

    3. "AJAX无刷新更新":通过jQuery或ASP.NET AJAX库,可以实现部分页面的异步更新,提升用户体验。 4. "自定义错误处理":ASP.NET允许开发者设置全局错误处理,捕获并处理运行时可能出现的异常。 5. "邮件发送功能...

    J2EE,Javascript,Jquery,Html等各种手册

    7. **Apache**:Apache是世界上最常用的HTTP服务器软件,`ApacheMenu_zh_CN.chm`可能是关于配置、管理Apache服务器的中文指南,涵盖了模块、虚拟主机、URL重写和安全设置等内容。 这些资源对于学习和工作在Web开发...

    Squery框架 1.0.1版

    **Squery框架1.0.1版**是一个针对前端开发的轻量级框架,它集成了JavaScript、Jquery、Ajax和插件控件等技术,旨在简化Web应用程序的开发流程,提高开发效率。该框架在1.0版本的基础上进行了全面重构,提升了性能和...

    javaweb文件上传与下载模块源代码

    这可能需要JavaScript库如jQuery或Ajax技术来实现异步通信。 9. **错误处理**: - 编程中应处理各种异常情况,如文件类型不匹配、存储空间不足、网络中断等,并向用户返回友好的错误信息。 10. **性能优化**: -...

    ECShop_V2.7.3_UTF8_完美兼容_$_模式

    ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的。 但恰恰的,在封装JSON各种方法的同时对object的模型进行了重写,这个就跟jQuery冲突了。因为...

    jQuery 源码分析笔记(3) Deferred机制

    从1.5版本开始,jQuery加入了Deferred功能,让事件处理队列更加的完善。并用这个机制重写了Ajax模块。虽然还没轮到Ajax,但是接下来的事件处理函数中牵扯到了这个机制,所以提前看这段代码。

    PHP网络编程典型模块与实例源码

    9. **Ajax异步通信**:使用JavaScript的XMLHttpRequest对象或jQuery的$.ajax()实现页面无刷新更新。 10. **邮件发送**:通过`mail()`函数发送电子邮件,或者使用PHPMailer库发送更复杂的邮件,包括附件和HTML内容。...

    .net求职简历项目经验模板.docx

    开发者在项目中实现了基于三层架构的系统,结合SWFUpload实现无刷新图片上传、JQuery UI、URL重写、CKeditor、Ajax、盘古分词和Lucene.NET全文检索等技术,提升了用户体验和系统性能。 3. 武汉江汉区常青花园小区...

    ASP.NET开发典型模块大全(1DVD)

    11. **AJAX与jQuery**:使用ASP.NET AJAX扩展和jQuery库提升Web应用的交互性和响应速度。 12. **Web API**:了解如何创建RESTful服务,支持JSON或XML数据交换,用于构建API驱动的应用。 13. **单元测试与持续集成*...

Global site tag (gtag.js) - Google Analytics