节日问候!在仔细审查了“好孩子”和“坏孩子”名单后,我们决定在 2014 年的结尾留下一个小礼物:jQuery 1.11.2 和 2.1.3!这些版本包含几个错误修复,以改善您的跨浏览器开发体验。
此版本中最重要的修复是针对 Safari 8.0 和 7.1 中一个严重的 querySelector 错误的规避方案。当此错误出现时,我们希望它能在补丁版本中得到修复,但事实并非如此。Apple 是迄今为止最不透明的浏览器制造商,我们对 针对此错误的 Webkit 补丁何时会被纳入 Safari 的信息非常有限。因此,我们决定在 Sizzle 中进行补丁,Sizzle 是 jQuery 使用的选择器引擎。
像这样的错误强调了使用像 jQuery 这样的库而不是直接使用 DOM API 的好处。即使是现代浏览器也可能存在长期未修复的错误,并且在几种广泛使用的浏览器(如 Android 2.3)中仍然存在跨浏览器功能差异。针对晦涩浏览器问题的特殊代码可能看起来是不必要的,直到你花了一天的时间来调试你自己的代码中由其中一个问题引起的问题。或者更糟糕的是,因为他们无法从旧手机上使用你的网站而失去一个付费客户。
另一个使我们在 iOS 8 上测试 jQuery 变得困难的错误是 模拟器的用户代理不正确,因此 iOS 8 模拟器未被我们的单元测试基础设施识别。针对该问题的 修复非常简单,但 Apple 并没有告诉我们是否可以依赖它。目前,我们正在手动进行 iOS 8 测试。
此外,此版本还包含 jQuery 内部的几个更改,以避免不必要地持有 DOM 元素。虽然旧代码通常不会导致运行错误,但网页可能会运行缓慢并使用比必要的更多内存。
您可能会注意到我们跳过了 2.x 分支中的一个补丁版本号。我们实际上并没有跳过它,我们构建了它并发现了一个在使用 node 时导致问题的问题。(非常感谢 Denis Sokolov 立即告知我们并促使我们修复它!)与其将这些文件发送到其他 CDN,我们决定创建新版本。
就兼容性或回归问题而言,我们认为对于当前使用 1.11.1 或 2.1.1 的任何人来说,这是一个非常低风险的升级。我们正在 jQuery 3.0 之前发布此版本,以确保您可以使用 Safari 安全版本的 jQuery,而无需检查您的代码是否与 jQuery 3.0 中预期的更改兼容。如果您遇到错误,请告诉我们。
您可以直接从 jQuery CDN 包含这些文件,或将它们复制到您自己的本地服务器。 1.x 分支包括对 IE 6/7/8 的支持,而 2.x 分支则不包括。
https://code.jqueryjs.cn/jquery-1.11.2.js
https://code.jqueryjs.cn/jquery-2.1.3.js
这些更新已经作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.org.cn/download/。公共 CDN 今天会收到他们的副本,请给他们几天时间来发布文件,不要不耐烦。如果您急于开始,只需使用我们 CDN 上的文件,直到他们有机会更新即可。
非常感谢所有参与此版本的人员,包括 Chris Antaki、Denis Sokolov、Jason Bedard、Julian Aubourg、Liang Peng、Michał Gołębiowski、Oleg Gaidarenko、PashaG、Richard Gibson、Rodrigo Rosenfeld Rosas、Timmy Willison 和 TJ VanToll,他们通过测试、报告错误或提交补丁来参与了此版本。
自 jQuery 上次发布以来,我们已从 Trac 安装迁移到 GitHub issues,因此目前两个错误跟踪器中都有此版本的工单。Trac 工单的引用已迁移到 GitHub issues,因此您可以使用 此 GitHub Issues 查询来查看所有工单。
感谢您的所有支持,我们将在 jQuery 3.0 中与您见面!
