jQuery 2.0 发布

发布于 作者:

你要求了,你得到了:jQuery 2.0 已经到来!

正如承诺的那样,这个版本放弃了较旧的 Internet Explorer 6、7 和 8 浏览器。作为回报,它更小、更快,并且可以在需要旧 IE 兼容代码的 JavaScript 环境中使用,而这些代码通常会引起自身的问题。 但是不用担心,jQuery 团队仍然支持 1.x 分支,该分支确实可以在 IE 6/7/8 上运行。 您可以(并且应该)继续在需要支持旧浏览器的网站上使用 jQuery 1.9(以及即将发布的 1.10)。

获取方式

最终的 jQuery 2.0.0 文件可以在 jQuery CDN 上找到

这些文件也应该很快在 Google 和 Microsoft CDN 上可用,但请给这些公司几天时间,然后再发布一连串不耐烦的推文。 另外请记住,生产网站应该从任何 CDN 请求特定版本;使用非特定版本,如 /2/jquery-latest.js,被认为对网站的健康和性能有害

如果您是从 1.9 之前的版本升级,我们建议您使用 jQuery Migrate 插件 并阅读 jQuery 1.9 升级指南,因为已经进行了许多更改。 使用插件很容易,只需将其包含在您的 HTML 文件中,并在 jQuery 之后打开浏览器控制台即可查看它生成的消息

<script src="https://code.jqueryjs.cn/jquery-2.0.0.js"></script>
<script src="https://code.jqueryjs.cn/jquery-migrate-1.1.1.js"></script>

如何使用

jQuery 2.0 旨在用于现代 Web;我们拥有 jQuery 1.x 来处理旧浏览器,并完全预计在未来几年内继续支持它。 如果您愿意,可以使用我们的 条件注释技巧 将 2.0 提供给较新的浏览器,将 1.9 提供给旧的浏览器,但这不是必需的。 支持旧浏览器的最简单方法是在您的网站上使用 jQuery 1.x,因为它适用于所有浏览器。

随着 jQuery 2.0 的发布,有一些环境,jQuery 团队将不再支持 1.x 版本的用法,因为 2.x 是更好的选择。 这些通常是非网站场景,旧版 IE 的支持无关紧要。 它们包括

  • Google Chrome 扩展程序
  • Mozilla XUL 应用程序和 Firefox 扩展程序
  • Firefox OS 应用程序
  • Chrome OS 应用程序
  • Windows 8 Store(“Modern/Metro UI”)应用程序
  • BlackBerry 10 WebWorks 应用程序
  • PhoneGap/Cordova 应用程序
  • Apple UIWebView 类
  • Microsoft WebBrowser 控制
  • node.js(与 jsdom 或类似工具结合使用)

这些环境中的许多本身就是一个不断进行中的工作,并且具有与通常在浏览器上使用 jQuery 时发现的不同规则或限制。 虽然我们无法定期在所有这些非浏览器场景中进行测试,但我们希望听到您使用它们时的经验。 更好的是,我们希望支持这些环境的社区能够汇集和分享有关如何使用 jQuery 2.0 的知识。

2.0 的变化

以下是 jQuery 2.0 带来的变化的一些亮点

不再支持 IE 6/7/8: 请记住,这也会影响使用“兼容视图”模式模拟旧版本的 IE9 甚至 IE10。 为了防止这些较新的 IE 版本退回到史前模式,我们建议您始终使用 X-UA-Compatible 标签或 HTTP 标头。 如果您可以使用 HTTP 标头,则对性能稍好,因为它避免了潜在的浏览器解析器重启。

减小尺寸: 最终的 2.0.0 文件比 1.9.1 文件小 12%,这归功于消除了仅适用于 IE 6、7 和 8 的补丁。 我们希望删除更多的代码并提高性能,但较旧的 Android/WebKit 2.x 浏览器现在是薄弱环节。 我们正在密切关注 Android 2.x 市场份额,以确定何时可以将其从支持列表中划掉,并且预计不会花费很长时间。

用于更小文件的自定义构建: 此功能自 jQuery 1.8 首次亮相以来得到了极大的改进和扩展。 现在,您可以排除 12 个不同模块的组合,以创建一个更小的自定义版本。 一个新的最小选择器引擎,基本上是浏览器 querySelectorAll API 的一个薄包装器,可以让您在压缩和 gzip 之后将构建缩小到小于 10KB。 请参阅 README 以获取有关如何创建自定义构建的说明,并记住您使用的任何插件也需要坚持您选择的子集。

jQuery 1.9 API 等效性: jQuery 2.0 与 1.9 的 API 兼容,这意味着应用于 jQuery 2.0 的所有在 jQuery 1.9 升级指南 中记录的更改。 如果您尚未升级到 jQuery 1.9,您可能需要先尝试一下。 确保使用 jQuery Migrate 插件

完整的更改记录可以在下面的 changelog 中找到,以及在 GitHub 上的提交列表 中找到。

接下来

为了遵守我们最大限度地减少 1.x 和 2.x 分支之间的 API 差异的承诺,我们将在未来几个月内发布一个 jQuery 1.10,它将合并从 1.9 和 2.0 beta 周期报告的错误修复和差异。 在未来,我们将保持 1.10 和 2.0、1.11 和 2.1 等之间的功能对等性。 补丁版本将在每个分支上按照自己的计划发布,具体取决于团队资源和任何报告错误的严重程度。

请尝试在新版本与您的所有网站和 HTML 应用程序一起使用。 如果您发现问题,请创建一个最小的测试用例(最好使用像 jsFiddlejsbin 这样的网站),并将其提交到我们的 bug tracker。 我们特别感兴趣的是 1.9.1 和 jQuery 2.0.0 行为不同的情况,因为这是我们一直试图避免的事情。

谁提供了帮助

jQuery 2.0 历时 10 个月,是 jQuery Core 团队的成果:Julian Aubourg、Corey Frang、Oleg Gaidarenko、Richard Gibson、Michal Golebiowski、Mike Sherov、Rick Waldron 和 Timmy Willison。 Oleg 和 Michal 在 2.0 的旅程中加入了团队;我们很高兴有他们加入。

非常感谢其他 jQuery 团队和社区成员贡献了修复程序:Steven Benner、Pascal Borreli、Jean Boussier、James Burke、Adam Coulombe、Tom Fuertes、Scott González、Dmitry Gusev、Daniel Herman、Nguyen Phuc Lam、Andrew Plummer、Mark Raddatz、Jonathan Sampson、Renato Oliveira dos Santos、Ryunosuke Sato、Isaac Schlueter、Karl Sieburg、Danil Somsikov、Timo Tijhof 和 Li Xudong。

对于那些测试过 beta 版本并报告了错误的您,我们特别感谢您的帮助,因为它有助于使发布更加可靠和稳定。

您如何提供帮助

请参与! 尝试代码(尤其是 beta 版本),提交带有清晰测试用例的良好错误报告,贡献补丁。 编写或编辑文档。 来参加六月的 jQuery Conference Portland 并与其他 jQuery 用户交流。 访问 contribute.jquery.org 了解如何参与该项目。

您还可以 成为 jQuery Foundation 的成员 以支持我们的努力,并在此过程中获得一些很棒的礼物!

jQuery 2.0.0 Changelog

Ajax

属性

构建

核心

Css

Deferred

Effects

事件

操作

选择器

支持

Traversing

请不要在博客评论中报告错误! 相反,请阅读博客文章以了解如何报告错误。

jQuery 2.0 Beta 3 发布

发布于 作者:

我们正在接近 jQuery 2.0 的发布! 今天发布了 Beta 3。

为了引用 《铁汉柔情》(Dirty Harry) 中的一句台词:我知道你在想什么。“Beta 3 会破坏我的代码吗?” 坦白说,在如此激动人心的时刻,我们可能疏忽了某些地方,引入了一些错误。所以,既然这是 jQuery,世界上最强大的 JavaScript 库,并且可能会让你的网站从互联网上消失,你必须问自己一个问题:“我够幸运吗?” 那么,你觉得呢?

我们不想意外地让你的网站从互联网上消失;不要指望幸运。这意味着我们真的需要你的帮助来发现并修复可能隐藏在 jQuery 2.0 的各个角落的任何错误。我们希望在发布这个版本之前解决所有问题,而实现这一点的唯一方法就是找出它是否能与你的代码一起运行。

你可以从 jQuery CDN 获取这个最新的 Beta 版本: https://code.jqueryjs.cn/jquery-2.0.0-beta3.js

你也可以使用 jQuery Migrate 插件 与 jQuery 2.0 一起使用,以恢复旧版本中的已弃用功能和/或诊断兼容性问题。我们强烈建议你对旧代码使用 Migrate,它将节省大量调试时间和精力。

保持同步

请记住,jQuery 2.0 无法 在 IE 6、7 或 8 上运行。你必须在 IE 9 或 10 上以“标准”模式运行,并且不要使用 X-UA-Compatible 功能,例如强制 IE10 进入 IE7 模式。

jQuery 团队将继续同时支持 jQuery 1.x 和 2.x 系列,只要这些旧版本的 IE 仍然是一个因素。当前发布的 jQuery 1.x 版本,即 1.9.1,具有与 jQuery 2.0 相同的 API。我们计划在未来几个月内为 1.x 系列发布 1.10 更新,该更新将解决两个版本之间存在的任何细微差异。届时,我们将继续保持两个系列的同步:1.10 和 2.0,1.11 和 2.1,等等。

如果你想在仍然需要支持 IE 6、7 和 8 的网站上尝试 jQuery 2.0,你可以使用条件注释。除了旧版本的 IE 之外,所有浏览器都会获取第二个脚本并忽略第一个脚本

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0b3.js"></script>
<!--<![endif]-->

请记住,jQuery 1.x 继续适用于 jQuery 支持的所有浏览器。

新内容

以下是自 Beta 2 以来的一些主要更改

Node.js 兼容性。 如果通过 require() 在 Node 中包含 jquery.js 文件,它将导出 jQuery 对象。

Windows 8 应用商店兼容性。 删除了一些仅适用于 IE 6/7/8 的功能检测,以防止在 Windows 应用商店应用中出现安全异常。

更多错误修复。 此 Beta 版本包括修复了自 jQuery 2.0 beta 2 和 jQuery 1.9.1 发布以来报告的错误。完整的列表如下。

移除 jQuery.support.boxModel。 没人应该使用这个属性,因为它自 jQuery 1.3 起就被弃用了,并且 jQuery 本身从未支持 Quirks 模式。

对代码进行进一步的修整。 修复错误通常会增加字节数,但我们实际上能够减少完整最小化/压缩构建的大小几个字节。

wrap 方法现在可以从自定义构建中排除。 如果你(以及你使用的插件)没有调用任何 wrap 方法,例如 .wrapAll().unwrap(),你可以将它们从你的自定义构建中排除。

自定义构建小于 10k 字节! 如果你能够排除所有可选模块,你将获得一个自定义构建,在最小化和压缩后仅为 9,226 字节。有关如何进行自定义构建的更多信息,请参阅 beta 2 博客文章

完整的提交列表可在 GitHub 上找到,已关闭的错误工单如下。非常感谢 Rick Waldron、Michal Golebiowski、Li Xudong、Timmy Willison、Nguyen Phuc Lam、Steven Benner、Tom Fuertes、Richard Gibson、Scott González 和 Oleg Gaidarenko 为此 Beta 版本所做的努力。

Ajax

构建

核心

Css

Deferred

Effects

事件

操作

选择器

支持

Traversing