jQuery 自 2006 年诞生以来,一个发行了 1.x、2.x、3.x 这三个大版本。而在这三个大版本下又细分了许多小版本。可能有些小伙伴不太清楚这些版本有什么区别?实际开发中应该选用哪个版本?下面我对其做个总结。
一、1.x、2.x、3.x 三大系列的区别
1,IE 的支持情况比较
(1)情况分析
- 1.x:支持 ie6、ie7、ie8,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日)
- 2.x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
- 3.x:不兼容ie678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。目前该版本是官方主要更新维护的版本。最新版本:3.3.1(2018年1月20日)
(2)选择建议
- 如果需要兼容 ie678:只能选择 1.x
- 如果不需要兼容 ie678:可以选择 2.x、3.x。因为 1.x 中有大部分代码是对老旧浏览器做的兼容,这个就增加了运行的负担,影响了运行效率。
2,插件的支持情况比较
(1)情况分析
- 由于 jQuery 的版本都是不向后兼容的,导致了基于 jQuery 开发的插件会有兼容性问题。也就是说当新版本的 jQuery 推出后,原有的插件可能无法正常使用,需要插件作者重新开发新版本。
(2)选择建议
- 为了保证与各种插件有更好的兼容性可以选择 1.x 的版本。
3,新特性比较
(1)2.x 相较于 1.x 没有增加什么新特性,主要是去除了 ie678 的支持,提升了性能,减小了体检。
(2)3.x 相较于之前版本,增加了许多新特性,也改变一些以往的特性,具体可以参考我之前写的这篇文章:
二、具体版本建议
1,版本历史
版本号 | 发布日期 | 最新更新 | 大小(KB) | 备注 |
---|---|---|---|---|
1.0 | 2006年8月26日 | 第一个稳定版本 | ||
1.1 | 2007年1月14日 | |||
1.2 | 2007年9月10日 | 1.2.6 | 54 | |
1.3 | 2009年1月14日 | 1.3.2 | 55.9 | 将 Sizzle 选择器引擎引入核心 |
1.4 | 2010年1月14日 | 1.4.4 | 76 | |
1.5 | 2011年1月31日 | 1.5.2 | 83 | 延迟回调管理,ajax 模块重写 |
1.6 | 2011年5月3日 | 1.6.4 | 89 | 显著改善 attr() 与 val() 的性能 |
1.7 | 2011年11月3日 | 1.7.2 (2012年3月21日) | 92 | 新的事件 API:.on() 和 .off(),而旧的 API 仍然支持。 |
1.8 | 2012年8月9日 | 1.8.3 (2012年11月13日) | 91.4 | 重写 Sizzle 选择器引擎,改善动画和 $(html, props) 的灵活性。 |
1.9 | 2013年1月15日 | 1.9.1 (2013年2月4日) | 90 | 移除弃用接口,清理代码 |
1.10 | 2013年5月24日 | 1.10.2 (2013年7月3日) | 91 | 修复了 1.9 和 2.0 beta 版本周期的 bug 和差异 |
1.11 | 2014年1月24日 | 1.11.3 (2015年4月28日) | 95.9 | |
1.12 | 2016年1月8日 | 1.12.4 (2016年5月20日) | 95 | |
2.0 | 2013年4月18日 | 2.0.3 (2013年7月3日) | 81.1 | 除去对 IE 6-8 的支持以提高性能,并降低文件大小 |
2.1 | 2014年1月24日 | 2.1.4 (2015年4月28日) | 82.4 | |
2.2 | 2016年1月8日 | 2.2.4 (2016年5月20日) | 85.6 | |
3.0 | 2016年6月9日 | 3.0.0 (2016年6月9日) | 86.3 | Deferred、$.ajax、$.when 支持 Promises/A+,令 .data() 兼容HTML5 |
3.1 | 2016年7月7日 | 3.1.1 (2016年9月23日) | 86.3 | 加入 jQuery.readyException,ready handler 错误现在不会不显示了 |
3.2 | 2017年3月16日 | 3.2.1 (2017年3月20日) | 84.6 | 增加了对检索<template> 元素内容的支持,弃用了多种旧方法。 |
3.3 | 2018年1月19日 | 3.3.1 (2018年1月20日) | 84.8 | 弃用旧函数,函数现在可以接受类,并支持其写成数组格式。 |
2,1.x 常用版本
- 1.4.2:稳定性和兼容性都很出色,插件最多,但性能不如下面后面的几个版本。
- 1.7.2:性能提升,插件第二多,ajax 和 attr 等 api 有少许修改。
- 1.8.3:最后一个支持 IE6 的稳定版
- 1.9.1:开始移除了不少方法,事件绑定推荐使用 on 方法一个代替所有的。
- 1.12.4:1.x 时代最后一个稳定版本,仅支持 IE8,不支持 IE6/7。
PS:我们国内开发,如果使用jQuery,绝大多数都是1.x版本,比如京东,仍然是1.6版本
3,2.x、3.x 版本
除非有特殊要求(比如面向移动端),一般情况下这两大版本使用人的确很少:
- 2.x 最后一个稳定版本:2.2.4
- 3.x 最新版本:3.3.1
4. jquery常用版本CDN
新浪cdn用的jquery:
<script src="//lib.sinaapp.com/js/jquery/1.4.4/jquery.min.js"></script>
<script src="//lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<script src="//lib.sinaapp.com/js/jquery/1.12.4/jquery-1.12.4.min.js"></script>
<script src="//lib.sinaapp.com/js/jquery/2.2.4/jquery-2.2.4.min.js"></script>
百度CDN用:
<script type="text/javascript" src="//apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="//apps.bdimg.com/libs/jquery/1.7.2/jquery.min.js"></script>
jquery3 最新版本官方地址
<!--官方-->
<script type="text/javascript" src="//code.jquery.com/jquery-3.3.1.min.js"></script>
<!--七牛-->
<script type="text/javascript" src="//cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script>
收集比较全的最新CDN地址:https://www.cnblogs.com/osfipin/p/10444509.html。
备注:
1.链接地址一般可以不加协议头(http/https),浏览器会自动识别协议头。
2.如果想加入协议头,请先判断自己的网站,如果是https的网站(SSL加密),直接在//前加入https:,否则加入http:。
参考链接:
https://www.hangge.com/blog/cache/detail_2228.html
https://www.cnblogs.com/osfipin/p/6211468.html
https://www.cnblogs.com/ldq678/p/9665472.html