JQuery 版本1、版本2和版本3之间的区别是什么?

我最近偶然发现了一个使用 jQuery 版本2的 webchart.js页面设计,我正在使用 jQuery 版本1。

为了让代码正常工作,请务必使用最新版本,然后我检查了 jQuery 核心支持,他们已经发布了 jQuery 3。

我正在考虑使用版本3,但我正在寻找版本3是否有兼容性问题,它可能只用于特定的设备。

76772 次浏览

主要版本

版本1.0: 第一个稳定版。
版本2.0: 放弃 IE 6-8支持性能改进和减少文件大小
版本3.0: 承诺/A + 支持 Deferreds,$.ajax$.when.data() HTML5兼容

所有版本

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| Version Number |    Release Date    |       Latest Update        | Size Prod (KB) |                                   Additional Notes                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 1.0            | August 26, 2006    |                            |                | First stable release                                                                  |
| 1.1            | January 14, 2007   |                            |                |                                                                                       |
| 1.2            | September 10, 2007 | 1.2.6                      | 54             |                                                                                       |
| 1.3            | January 14, 2009   | 1.3.2                      | 55.9           | Sizzle Selector Engine introduced into core                                           |
| 1.4            | January 14, 2010   | 1.4.4                      | 76             |                                                                                       |
| 1.5            | January 31, 2011   | 1.5.2                      | 83             | Deferred callback management, ajax module rewrite                                     |
| 1.6            | May 3, 2011        | 1.6.4                      | 89             | Significant performance improvements to the attr() and val() functions                |
| 1.7            | November 3, 2011   | 1.7.2 (March 21, 2012)     | 92             | New Event APIs: .on() and .off(), while the old APIs are still supported.             |
| 1.8            | August 9, 2012     | 1.8.3 (November 13, 2012)  | 91.4           | Sizzle Selector Engine rewritten, improved animations and $(html, props) flexibility. |
| 1.9            | January 15, 2013   | 1.9.1 (February 4, 2013)   | 90             | Removal of deprecated interfaces and code cleanup                                     |
| 1.10           | May 24, 2013       | 1.10.2 (July 3, 2013)      | 91             | Incorporated bug fixes and differences reported from both the 1.9 and 2.0 beta cycles |
| 1.11           | January 24, 2014   | 1.11.3 (April 28, 2015)    | 95.9           |                                                                                       |
| 1.12           | January 8, 2016    | 1.12.4 (May 20, 2016)      | 95             |                                                                                       |
| 2.0            | April 18, 2013     | 2.0.3 (July 3, 2013)       | 81.1           | Dropped IE 6–8 support for performance improvements and reduction in filesize         |
| 2.1            | January 24, 2014   | 2.1.4 (April 28, 2015)     | 82.4           |                                                                                       |
| 2.2            | January 8, 2016    | 2.2.4 (May 20, 2016)       | 85.6           |                                                                                       |
| 3.0            | June 9, 2016       | 3.0.0 (June 9, 2016)       | 86.3           | Promises/A+ support for Deferreds, $.ajax and $.when, .data() HTML5-compatible        |
| 3.1            | July 7, 2016       | 3.1.1 (September 23, 2016) | 86.3           | jQuery.readyException added, ready handler errors are now not silenced                |
| 3.2            | March 16, 2017     | 3.2.1 (March 20, 2017)     | 84.6           | Hotfixes for regressions that were introduced in the 3.2.0                            |
| 3.3            | January 19, 2018   | 3.3.1 (January 20, 2018)   | 84.8           | Deprecation of old function calls, functions that accept classes now support them     |
|                |                    |                            |                | defined in an array                                                                   |
| 3.4            | April 10, 2019     | 3.4.1 (May 1, 2019)        | 86.1           | Performance improvements, nonce and nomodule support, fixes for radio elements, a     |
|                |                    |                            |                | minor security fix                                                                    |
| 3.5            | April 10, 2020     | 3.5.1 (May 4, 2020)        | 87.4           | Security fixes, .even() & .odd() methods, jQuery.trim deprecated                      |
| 3.6            | March 2, 2021      | 3.6.0 (March 2, 2021)      | 90.0           | Bug fixes, return JSON when there is a JSONP error                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

参考资料: https://en.wikipedia.org/wiki/JQuery#Release_history

主要版本详解

版本1.0是 jQuery 的第一个稳定版本。这个版本支持旧版本的浏览器,这些浏览器甚至不再被各自的开发者所支持。如果你希望有大量的访问者使用旧版本的浏览器,那么这个版本肯定是值得一试的。

版本2.0放弃了对 Internet Explorer 6-8的支持,从而提高了 jQuery 的整体性能,并减少了库的文件大小。简而言之: 版本2.0在文件大小方面比版本1.0更快更小,但是它不再支持旧版本的 Web 浏览器。由于微软放弃了对 Windows XP 的支持,所以我们可以合理地假设访问者将使用与版本2.0兼容的浏览器,除非您事先知道情况并非如此(参见版本1.0)。

随着3.0版本的发布,1.11.1和2.1.1版本都将升级到 jQuery Compat 3.0和 jQuery 3.0。JQuery Compat 3.0仍然支持老版本的浏览器,如 Internet Explorer 8,而普通版本3.0只支持常绿浏览器(特定浏览器的当前版本和以前版本)。

随着版本3.0的发布,没有理由坚持使用版本1.0或2.0。来自 jQuery 官方博客的一些注释:

  • 如果您需要支持包括 IE8在内的各种浏览器, Opera 12、 Safari 5等等都使用 jQuery-Compat 3.0.0包。 我们建议大多数网站使用这个版本,因为它提供了 所有网站访问者的最佳兼容性。
  • 如果你的网站只是为常绿的前沿浏览器而建,或者 是一个包含在 webview 中的基于 HTML 的应用程序(例如 PhoneGap 或 Cordova)在你知道哪些浏览器引擎正在使用的地方,去 JQuery 3.0.0包。
  • 除非我们另行通知,否则两个包都将包含相同的 相应编号的主要和次要版本的公共 API 应该使开发人员很容易在两者之间切换 最大限度地兼容第三方 jQuery 插件

参考资料: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/