关于jquery这个库呢,的确有不同的版本,每次升级就会带来版本的不同,但是,每次升级的是对库的优化。
下面是query2.0版本的升级之后的一些改动。
1、不兼容 IE6/7/8
需要注意 IE9、IE10 的兼容模式仍然会使 jQuery 2.0 运行不正常,需要在 HTTP header 指定 X-UA-Compatible 属性,或者在页面 meta 标签中声明(性能原因,不推荐后者);
2、体积更小
移除 IE6/7/8 兼容所需的代码,jQuery 2.0 体积减小了 10%,并且会根据 Android 2.x 版本的份额,移除更多兼容性代码,所以不要指望 jQuery 2.0 对旧设备的兼容性。
3、可自定义包含的功能模块
通过配置应用所需的功能函数,可编译获取指定功能模块的代码版本,更大幅度减小文件体积。
4. 兼容 1.9 版本的 API如果你的网站应用已经在使用 jQuery 1.9 版本,那就可以直接平滑迁移到 2.0 ,建议使用 jQuery Migrate 插件调试确认。
知识拓展:
⒈4重要新特性
·常用方法的性能大幅提升:重写了大部分较早期的函数;
·更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;
·对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;
·attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进
1.5新版本
美国时间2012年1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期开发完成,可以下载使用。压缩版本jQuery Minified29KB,不压缩版本jQuery Regular(用于阅读和调试)207KB。由于jQuery已经成为目前最流行的JavaScript库,得到广泛的支持,新版本的发布当然非常引人注目。
重要变化:
1. Ajax重写
Ajax模块完全进行了重写。新增一个jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如JSONP请求,jXHR对象也可以进行处理。(详情可以参见:jQuery.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()几个常用的遍历函数性能有了显著提高。
5. 内部开发系统
John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。