很难相信 jQuery 发布已经近八年了。多年来,Web 开发发生了很大变化,jQuery 也随之改变。在这段时间里,团队一直试图在保持与过去代码的兼容性与支持当前最佳 Web 开发实践之间取得平衡。
其中一项最佳实践是语义化版本控制,简称 semver。从实际意义上讲,semver 使开发人员(以及构建工具)能够了解迁移到新软件版本所涉及的风险。版本号采用 MAJOR.MINOR.PATCH 的形式,其中三个组件都是整数。在 semver 中,如果 MAJOR 编号发生变化,则表示 API 中存在重大变更,因此开发人员需要小心。
版本控制的概念在 jQuery 中变得更加细致,其中浏览器兼容性与 API 兼容性一样重要。为了创建一个更精简的 jQuery,团队从 2013 年开始发布两个版本。第一个版本保持 1.x 行的编号,目前为 1.11.1,保持与最大数量的浏览器的兼容性。第二个版本从 2.0.0 开始,现在是 2.1.1,放弃了对 IE8 或更低版本浏览器的支持,以简化代码。jQuery 的 1.x 和 2.x 版本都具有相同的公共 API,尽管它们在内部实现上有所不同。
我们的下一个版本将使用不同的命名法。与之前一样,将发布两个不同的文件。目前 1.11.1 版本的继任者将成为 **jQuery Compat 3.0**。jQuery 2.1.1 的继任者将是 **jQuery 3.0**。npm 和 Bower 上有两个不同的 *包*,但它们共享相同的版本以表明它们具有相同的 API 行为。
我们还将从这些版本开始重新调整我们的浏览器支持策略。主要的 jQuery 包通过支持在发布时常见的常青浏览器(特定浏览器的当前版本和上一个版本)来保持精简。我们可能会根据市场份额在本包中支持其他浏览器。jQuery Compat 包提供更广泛的浏览器支持,但代价是文件大小更大,性能可能更低。
尽管版本号大幅度跳跃,但我们预计大多数当前 jQuery 代码不会出现太多迁移问题。我们只是在这个版本升级中成为良好的 semver 公民。使用新版本的 jQuery Migrate 插件 将检测到删除弃用方法等更改,以便轻松查找和修复它们。我们将在以后的博文中提供有关更改的更多详细信息。
因此,以下是 jQuery API 3.0 版的 TL;DR
- 如果您需要支持最广泛的浏览器,包括 IE8、Opera 12、Safari 5 等,请使用 jQuery-Compat 3.0.0 包。我们建议大多数网站使用此版本,因为它为所有网站访客提供了最佳兼容性。
- 如果您的网站仅为常青领先的浏览器构建,或者是一个包含在 Web 视图中的基于 HTML 的应用程序(例如 PhoneGap 或 Cordova),并且您知道使用的是哪些浏览器引擎,请使用 jQuery 3.0.0 包。
- 在我们另行宣布之前,两个包都将在相应的编号的主版本和次版本中包含相同的公共 API。这应该使开发人员能够轻松地在两者之间切换,并最大限度地兼容第三方 jQuery 插件。
在未来的每个版本中,我们都将在 npm 和 bower 上提供这两个包。这两个包也将作为单文件构建在 jQuery CDN 上提供。从那里使用它们就像根据您的需要包含 jquery-compat-3.0.0.js 或 jquery-3.0.0.js 一样简单。我们已经与管理 Google CDN 的人员进行了交流,他们也将支持这两个包。
随着我们在 3.0 版方面取得进一步进展,我们将向大家更新有关代码更改、支持的浏览器等方面的详细信息。敬请关注!