jQuery版本的区别
⽂章⽬录
jQuery的版本
我们平时使⽤的jQuery包括了1.x,2.x,3.x这⼏个版本,今天就⼤概来说⼀下这⼏个版本性能的⼀些区别?
1.X:兼容IE678,使⽤最为⼴泛,官⽹只做BUG维护,功能不再新增。因此⼀般项⽬来说,使⽤1.X版本就可以了。
2.X不兼容ie678,很少有⼈使⽤,官⽅只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使⽤2.x。
3.X不兼容ie678,只⽀持最新的浏览器。除⾮特殊要求,⼀般不会使⽤3.x版本的,很多⽼的jQuery插件不⽀持这个版本。
所以现在使⽤最⼴的版本都是1.x的,因为它能够兼容很多浏览器。
jQuery 2.x 不是 1.x 的后续或者升级版本,他们是同时更新迭代的。(很多⼈会误认为 jQuery 2.x 是在 1.x 的版本上有⼤的升级改动)
1.11.1的继承版本将成为jQuery Compat 3.0。jQuery
2.1.1的继承版本将为jQuery
3.0。
1.X版本的特性
jQuery 1.0(2006年8⽉):
该库的第⼀个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健⽀持
后⾯没什么⼤改动,直到了1.4版本,有了新的性能:
常⽤⽅法的性能⼤幅提升:重写了⼤部分较早期的函数;
更容易使⽤的设置函数(setter function):为所有对象新增了许多易⽤的设置函数;
对Ajax的改进:引⼊了许多Ajax和JSON处理⽅⾯的更新,包括HTML5元素的序列化;
attribute(改进了.attr()的性能)、jQuery()核⼼函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进
1.5新版本:
同样的很多函数的性能都提升了,还加了⼏个重要调整
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程序将⾃动获得这⼀功能。
3. jQuery.sub()
jQuery 1.5提供了⼀种创建和修改jQuery副本的⽅式。可以⽤来添加不向外部公开的⽅法,或者对jQuery的某些⽅法进⾏重新定义以提供新功能,或者提供更好的封装、避免名称空间冲突。当然,也可以⽤来开发插件,但Resig强烈建议在开发插件之前,先考虑jQuery UI widget⼯⼚。
值得注意的是,sub函数并不提供真正的隔离,所有⽅法、数据、调⽤仍然依靠jQuery本⾝来⽀持。
jQuery 1.7
在这个版本加⼊了⼀些我们现在常⽤的函数,在以前版本是不能⽤的。
2011年09⽉29⽇jQuery 1.7 的第⼀个 beta 测试版本,该版本修复了超过 50 个的问题以及带来⼀些新特性。2011年11⽉4⽇jQuery1.7正式版发布。
新版本包含了很多新的特征,特别提升了事件委派时的性能尤其是在IE7下。
新增及改进项:
⒈新的事件 APIs: .on() and .off();
⒉提升了事件委派时的性能有了⼤幅度的提升,尤其是在IE7下;
⒊更好的在 IE 6/7/8 上⽀持 HTML5;
⒋切换动画更加直观;
⒌匿名模块定义 AWD
⒍jQuery.Deferred
⒎jQuery.isNumeric()
被删除的⽅法:
event.layerX and event.layerY
jQuery.isNaN()
⽽后⾯的版本⼜主要是修复之前存在的BUG,没加什么新的功能
所以在平时开发1.7基本也就能满⾜我们的需求了。
另外还要提的是,如果jQuery版本问题和浏览器不兼容会导致⼀些问题
1、该⽹页的脚本与所使⽤的浏览器不兼容,导致参数赋值不正确;
2、浏览器可能被破坏,导致某些页⾯控件不能正常使⽤⽽导致参数赋值不正确;
3、可能本⾝改⽹页脚本编写时就存在错误。
我们同时也可以对浏览器进⾏判断来防⽌不兼容问题,判断是否是IE
function IEVersion(){
var userAgent = navigator.userAgent;//取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible")>-1&& userAgent.indexOf("MSIE")>-1;//判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge")>-1&&!isIE;//判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident')>-1&& userAgent.indexOf("rv:11.0")>-1;
if(isIE){
var reIE =new RegExp("MSIE (\\d+\\.\\d+);");
var fIEVersion =parseFloat(RegExp["$1"]);
if(fIEVersion ==7){
return7;
}else if(fIEVersion ==8){
return8;
}else if(fIEVersion ==9){
jquery是什么有什么作用
return9;
}else if(fIEVersion ==10){
return10;
}else{
return6;//IE版本<=7
}
}else if(isEdge){
return'edge';//edge
}else if(isIE11){
return11;//IE11
}else{
return-1;//不是ie浏览器
}
}
jQuery-easyui的兼容
主要easyui和jQuery对IE浏览器的兼容
1、最后⽀持IE8及以下版本的是JQuery1.9
2、最后⽀持IE8及以下的Easyui是1.3.2,其对应的是JQuery1.8
如果我们要兼容IE8以及以下的浏览器,最好⽤版本低⼀些的
不然容易不兼容报错,例如
会显⽰你的对象未定义

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。