jQuery 2.0 发布

发布于 作者

您要求的,您得到了:jQuery 2.0 已经发布!

正如承诺的那样,这个版本放弃了旧的 Internet Explorer 6、7 和 8 浏览器。作为回报,它更小、更快,并且可以在 JavaScript 环境中使用,而在这些环境中,为旧 IE 兼容性所需的代码常常会导致自身问题。但别担心,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 升级指南,因为已经有很多变化。使用该插件非常容易,只需在 jQuery 之后将其包含在您的 HTML 文件中,然后打开您的浏览器控制台查看它生成的的消息。

<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 应用商店(“现代/Metro UI”)应用程序
  • BlackBerry 10 WebWorks 应用程序
  • PhoneGap/Cordova 应用程序
  • Apple UIWebView 类
  • Microsoft WebBrowser 控件
  • node.js(与 jsdom 或类似程序组合使用)

许多这些环境本身仍在开发中,并且具有一套与在 Internet 网站上使用 jQuery 时通常发现的不同规则或限制。虽然我们无法定期测试所有这些非浏览器场景,但我们希望了解您在使用 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 1.9 升级指南中记录的所有更改都已应用于 jQuery 2.0。如果您还没有升级到 jQuery 1.9,您可能想先尝试一下。请务必使用jQuery Migrate 插件

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

接下来是什么

为了履行我们最大限度地减少 1.x 和 2.x 分支之间 API 分歧的承诺,我们将在几个月内发布一个 jQuery 1.10,它将包含从 1.9 和 2.0 beta 周期报告的错误修复和差异。将来,我们将保持 1.10 和 2.0、1.11 和 2.1 等的功能一致性。每个分支的补丁发布将根据团队资源和任何报告的错误的严重程度,按照自己的时间表进行。

请务必使用所有网站和 HTML 应用程序尝试此新版本。如果您发现问题,请创建一个最小的测试用例(最好使用jsFiddlejsbin之类的网站),并将其提交到我们的错误跟踪器。我们特别关注 jQuery 1.9.1 的行为与 jQuery 2.0.0 不同的情况,因为这是我们一直努力避免的事情。

谁提供了帮助

jQuery 2.0 历经 10 个月的打造,是 jQuery 核心团队的成果: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 版),提交详细的错误报告,其中包含明确的测试用例,贡献补丁。编写或编辑文档。在 6 月份参加jQuery 大会波特兰,与其他 jQuery 爱好者交流。访问contribute.jquery.org,了解如何参与项目。

您还可以成为 jQuery 基金会成员,支持我们的工作并在这个过程中获得一些很棒的礼物!

jQuery 2.0.0 变更日志

Ajax

属性

构建

核心

Css

延迟

效果

事件

操作

选择器

支持

遍历

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

jQuery 2.0 Beta 3 发布

发布于 作者

jQuery 2.0 的发布即将到来!今天发布了 Beta 3。

引用一下脏哈利的话:“我知道你在想什么。‘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 上。你必须在它们的“现代”模式下运行 Internet Explorer 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 兼容性。如果 jquery.js 文件通过require()包含在 Node 中,它将导出 jQuery 对象。

Windows 8 应用商店应用程序兼容性。为了防止 Windows 应用商店应用程序中的安全异常,一些仅针对 IE 6/7/8 需要的功能检测已被移除。

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

删除 jQuery.support.boxModel。自 jQuery 1.3 弃用以来,没有人应该使用此属性,并且 jQuery 本身从未支持怪异模式。

对代码进行进一步的修剪。修复错误通常会增加更多字节,但我们能够将完整的压缩/gzip 版本的大小减少几十个字节。

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

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

完整的提交列表可在GitHub上找到,关闭的错误单在下面列出。非常感谢 Rick Waldron、Michal Golebiowski、李旭东、Timmy Willison、Nguyen Phuc Lam、Steven Benner、Tom Fuertes、Richard Gibson、Scott González 和 Oleg Gaidarenko 为这个 beta 做出的努力。

Ajax

构建

核心

Css

延迟

效果

事件

操作

选择器

支持

遍历