jquery各版本区别
jquery版本区别:
1.3一般功能够
1.4.2一般功能够而且稳定
1.7+比较新特性
2不支持老IE
兼容的话最好选 1.x。稳定性就用1.7或者1.4,其中1.4的体积相对小
另外更加情况选用1系列还是2系列,2系列不支持ie6,7,8
常用1.4和1.7:
两者可扩展性、兼容性分析:
由于 Jquery 的版本都是不向后兼容的,导致了基于 jquery 开发的插件兼容性有问题,当新版本的 jquery 推出后,如果开发想升级的话,
要看插件是否支持。通常情况下,在最新版 jquery 版本下,现有插件可能无法正常使用。开发者使用的插件越多,这种情况出现概率越高。
同时,由于 jquery1.4.2 版本发布时间比较早,基于这版本开发的插件数量庞大,而对应版本的开发社区相当活跃,很多诡异的问题,
网上都有对应的解决方案。
从可扩展性来分析吧,无论是 1.7.1 还是 1.4.2 留给开发扩展的方法只有两个,分别是 jquery.extend 和 jquery.fn.extend ,
一种是添加静态属性和方法、一种是对象添加属性和方法,扩展方式比较简单,经历了多个版本,扩展方式都一致,因此在扩展性上面没什么可比较的。
综合来说, jquery1.7.1 的版本在多数浏览器上的性能表现无疑比 jquery1.4.2 更好,而稳定性和兼容性方面 jquery1.4.2 更出色点,
其它地方基本没什么差距。
从目前前端开发情况来说吧,引用到第三方的扩展库相对来说比较少,我们更多的关注框架性能是否优越,可扩展性是否良好,因此, jquery1.7.1 的版本是当前最好的选择。
既然jQuery 2.x不支持老旧浏览器,那么为什么要开发这个版本?
要说明的是,这个版本主要是用于目前一些比较高级的JS环境,也即是版本比较新的浏览器。这些JS和老旧IE没有多大关系,而jQuery 1.x中有大部分代码是
对老旧浏览器做的兼容,这个就增加了运行的负担,影响了运行效率。
jquery3.0 新特性:
1. 移除旧的IE工作区
新的最终版最主要的目标是更加快速,更加时尚,因此,那些支持早于IE9版本的相关技术与工作区都被移除了。这意味着如果你想要或者需要支持IE6-8,你必须用回1.12版本,因为甚至是2.X版本都无法完整支持早于IE9的浏览器。
2. jQuery 3.0运行在Strict Mode下
大多数支持jQuery 3的浏览器都支持strict mode,而在本次更新中对此进行了规定。
虽然jQuery 3是写在strict mode中的,但是你需要了解的是你的代码并不需要运行在strict mode中,因此如果你想要把以前的代码迁移到jQuery 3,你不需要对已存在的jQuery代码进行重写。Strict和non-strict mode的JavaScript代码可以和谐共存。
这里有一些例外:某些版本的ASP.NET,因为strict mode的缘故,无法与jQuery 3兼容,如果你的代码涉及到了ASP.NET,你可以查看关于strict mode的细节。
3. 引进for...of循环
jQuery 3支持for...of语句,这是由ECMAScript 6中新引进的一种for循环语句。这提供了对Arrays,Maps和Sets这样的可迭代对象一种更直接的遍历方法。
在jQuery中,for...of循环可以取代以前的$.each(...)语法,并且更容易通过jQuery的元素集合进行循环。
4. 动画方面采用新的API
jQuery 3使用requestAnimationFrame() API来执行动画,使动画运行得更加顺畅、快速。新的API只用于支持它的浏览器,对于那些更老的浏览器(如IE9)jQuery使用先前的API来作为显示动画的后备方案。
RequestAnimationFrame已经推出一段时间了,如果你对如何使用它以及什么时候使用它感兴趣,CSS Tricks上有一篇很好的文章可供你阅读。
5. 对包含特殊含义的字符串提供转义的新方法
新的jQuery.escapeSelector()提供了对在CSS中存在特殊含义的字符串或字符进行转义的方法,该方法可使这些字符串或字符能够继续用于jQuery选择器中,而无需对那些无法进行正确理解的JavaScript解释器进行转义。
这个示例可以让你更好的了解这个全新的方法:
举个例子,页面中某个ID为“abc.def”的元素由于选择器将其解析为ID为“abc”且包含一个名为“def”的类的对象,而无法被$( "#abc.def" )选定。但是它可以由 $( "#" + $.escapeSelector( "abc.def" ) )来进行选定。
我无法确定发生中情况的频率,但是假如你碰到过这种类似的情况,这无疑给了你一个解决该问题的简单方法。
6. 类操作方法支持SVG
不幸的是,jQuery 3现在还无法完整的支持SVG,但是对于操作CSS类名称的jQuery方法,如.addClass()和.hasClass()现在可以将SVG文档作为目标。这意味着你可以修改(添加、删除、切换)或者查找SVG(可缩放矢量图形)下的jQuery类,然后使用CSS的类样式。(相关阅读:Styling Scalable Vector Graphic (SVG) with CSS)
7. 延迟对象现在与JS Promises兼容
JavaScript Promises,用于异步计算的对象,现在在ECMAScript 6中已经被标准化;它们的运行状况和特性的详细说明参见Promises/A+标准。
在jQuery 3中,延迟对象已经与新的Promises/A+标准相兼容,延迟对象已经成为让创建回调队列成为可能的可链对象(chainable objects)。
新的特性改变了异步回调函数执行过程,Promises允许开发者编写在逻辑上与同步代码更接近的异步代码。
查看升级指南的代码示例,或者查看关于JavaScript Promises基础的Scotch.io教程可以让你了解更多的信息。
8. jQuery.when()对于多种参数的不同解读
$.when()提供了执行回调函数的一种方法,它成为了jQuery 1.5之后的一部分。这个方法非常灵活,它适用于零参数,也适用于一个或者多个作为参数的对象。
jQuery 3改变了当包含$.then()方法时对$.when()中参数的解读方法,你可以对$.when()进行额外的参数回调。
在jQuery 3中,如果你在$.when()中的then()方法内增加一个输入参数,该参数将会被解释成一个可与Promise兼容的"thenable"。
这意味着 $.when方法能够接收更加宽广的输入范围,比如原生的ES6 Promises和Bluebird Promises,这也使得编写更复杂的异步回调成为了可能。
9. 新的显示/隐藏逻辑
为了增加响应式设计的兼容性,与元素显示和隐藏的代码在jQuery 3中进行了更新。
从现在开始,.show()、.hide()和.toggle()方法将会以内联样式为重点取代以前的计算样式,这种方式能够更尊重样式列表的改变。
新的代码尽可能的尊重样式列表中所呈现的数值,这意味着CSS规则可根据事件(如设备重新定位和窗口尺寸调整)进行动态改变。
这个说明文件申明了最重要的结果就是:
“作为结果,断开连接的元素除非指定了内联display: none,否则将不再认定为是隐藏的。因此,在jQuery 3.0中,.toggle()不再对断开连接元素与已连接元素进行区分。”
如果你想要更好的了解关于全新的显示/隐藏逻辑,这个Github discussion会对你有帮助。jQuery开发者还发布了Google文档表来展示在不同用例下新规则的运转。
10. 对于防止XSS攻击的额外保护
jQuery 3增加一个额外的安全层用户用于防备跨站点脚本(XSS)攻击,它需要开发者指定$.ajax()和$.get()方法中的选项为dataType: "script"。
换言之,如果你想要执行跨站点的脚本请求,你必须在这些方法中作出这样的声明。
新的改变对于当“远程站点传递非脚本内容之后又提供有恶意脚本的服务内容”的情况是非常有效的。这个变化不会影响$.getScript()方法,因为它明确地设置了dataType: "script"选项。
jquery各版本区别的更多相关文章
- [转]jQuery不同版本区别
原文转载自csdn:http://blog.csdn.net/u010167032/article/details/23666145 了解不同版本之间的差异,与助于选择适合自己项目的版本. ⒈4重要新 ...
- [转帖]Asp.Net MVC EF各版本区别
Asp.Net MVC EF各版本区别 https://www.cnblogs.com/liangxiaofeng/p/5840754.html 2009年發行ASP.NET MVC 1.0版 201 ...
- .NET 版本区别,以及与 Windows 的关系
老是记不住各 Windows 版本中的 .NET 版本号,下面汇总一下: .NET Framework各版本汇总以及之间的关系 Mailbag: What version of the .NET Fr ...
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
http://blog.163.com/jekyll_zhou@126/blog/static/1820473820123206189381/ OJDBC版本区别 [ojdbc14.jar,ojdbc ...
- JavaScript 对象、DOM对象、jquery对象的区别、转换详解
一.JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性: [javascrip ...
- 浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
本篇文章主要是对jQuery(function(){})与(function(){})(jQuery)之间的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 Jquery是优秀的Javas ...
- java版本区别
java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)
- Windows8 各种版本区别对比详解
微软的 Windows8 操作系统提供了4个不同的版本,分别是 Windows RT.Windows 8 标准版.Windows 8 Pro 专业版 以及 Windows 8 Enterprise 企 ...
- DOM对象和JQuery对象的区别
DOM对象和JQuery对象的区别 jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DO ...
随机推荐
- Edward's Cola Plan
Edward's Cola Plan Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu S ...
- 关闭Pycharm拼写检查(Mac)
1.关闭拼写检查,preference-->Editor-->Inspections-->Spelling-->Typo,取消勾选 2.关闭代码风格检查,preference- ...
- A*寻路算法 (cocos2d-js详细代码)
看了几天的A*算法,感觉要成为一个游戏开发者,有必要把这个著名的算法拿到手. 网上有此算法的代码片段,但主要还是些模板类的伪代码,所以想分享一段完整的A*算法代码供大家更好的理解!(这里使用的是js语 ...
- C++线程安全的单例模式
1.在GCC4.0之后的环境下: #include <iostream> using namespace std;template <typename T>class Sing ...
- Angular DirtyChecking(脏值检查) $watch, $apply, $digest
Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS ...
- 代码块(Block)回调一般阐述
本章教程主要对代码块回调模式进行讲解,已经分析其他回调的各种优缺点和适合的使用场景. 代码块机制 Block变量类型 Block代码封装及调用 Block变量对普通变量作用域的影响 Block回调接口 ...
- linux共享文件夹
mnt中没有 hgfs,重新安装vm tools后问题解决
- openstack私有云布署实践【16.2 Ubuntu1404 只有根分区镜像制作】
之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入 在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: ...
- JavaScript的内置对象(Date日期+string字符串)基础语法总结
1.Date日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 1)定义一个时间对象 : var Udate=new Date(); //注意:使用关键字new,Date()的首 ...
- geom设置—折线图
折线图在R中也是很常见的一种图形,相对而言也比较简单. geom_line(mapping = NULL, data = NULL, stat = "identity", posi ...