jQuery 2.0 的下一个 Beta 版本已经发布!这个 Beta 版本包含了根据大家对第一个 Beta 版本的反馈所做的几处更改和调整。我们真的需要你们测试这个版本,并告诉我们还需要改进的地方。我们相信这个版本非常稳定,可以供大家试用;不要等到最终版本发布后再发现你的代码无法运行。
请记住,jQuery 2.0 无法 在 IE 6、7 或 8 上运行;我们将把这项任务留给 jQuery 1.9。我们完全预计大多数互联网网站在相当长的一段时间内仍将继续使用 jQuery 1.x,只要旧版本的 IE 仍然占网络浏览者的很大比例。因此,jQuery 团队也将继续支持 jQuery 1.x 和 2.x 系列。在使用 1.9 的网站上,不必担心自己落后或错过什么,因为 1.9 和 2.0 的 API 相同。
如果你想在仍然需要支持 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.0b2.js"></script>
<!--<![endif]-->
有很多其他环境,jQuery 2.0 应该能很好地适应。以下是一些建议:
- Google Chrome 插件
- Mozilla XUL 应用程序和 Firefox 扩展程序
- Firefox OS 应用程序
- Chrome OS 应用程序
- Windows 8 Store(“Modern/Metro UI”)应用程序
- BlackBerry 10 WebWorks 应用程序
- PhoneGap/Cordova 应用程序
- Apple UIWebView 类
- Microsoft WebBrowser 控制
- Cheerio 或 jsdom 与 node.js
- 内网应用程序
在 node.js 方面,jQuery 团队现在拥有 npm 中的“jquery”和“jQuery”名称,并将很快在此处发布 2.0 版本。
你可以从 jQuery CDN 获取这个最新的 Beta 版本:
https://code.jqueryjs.cn/jquery-2.0.0b2.js
要使用 jQuery 2.0 运行 1.9 之前的代码,你还可以使用 jQuery Migrate 插件 来恢复旧版本中的弃用功能和/或诊断兼容性问题。我们强烈建议你使用 Migrate 处理旧代码,这将节省大量调试时间和精力。
新内容
大量错误修复: jQuery 1.9.1 和 1.9.2pre 中的所有相关修复都已合并到 jQuery 2.0 beta 2 中。不幸的是,我们不得不撤销一些不受较旧版本的 WebKit(如 Android 2.3)支持的优化,但大多数优化没有造成显著的体积影响。不过,我们计划尽快将其恢复!为了帮助我们,只要你看到旧的 Android 手机,就可以“不小心”用锤子砸它。
新的 .data() 实现: 这段新代码是由 Rick Waldron 完全重写的。它比旧代码更小、更简单、更易于维护。
自定义构建中增加模块化: 如果你愿意使用 .on("mouseover"...) 代替,现在可以排除所有冗余的事件简写,例如 .mouseover(...)。
最小选择器引擎: Richard Gibson 创建了一个围绕浏览器原生 querySelectorAll 和 matchesSelector API 的小型包装器,可以用作完整 Sizzle 选择器引擎的替代品。但是,请注意,支持的选择器和语义方面存在 重大差异。这个最小的引擎不支持 jQuery 选择器扩展,例如 :radio 或 :first。
自定义构建
我们希望你尝试基于 grunt 的自定义构建系统。 README 提供了有关创建自定义构建的更多详细信息。在 beta 2 中,你可以用一个简单的选择器引擎替换 Sizzle,并排除 css、事件别名、动画、偏移量以及 .andSelf() 等已弃用的功能(尚未删除)。此外,你可以排除脚本、JSONP 或 XMLHTTPRequest 传输的子集。没错,拒绝我们 jQuery 现实中的任何模块,并用你自己的模块来替代。
以下是模块化构建可以节省多少空间的示例。假设你不需要 css、偏移量、尺寸或已弃用的模块,并且计划完全通过 CSS 过渡和类来完成动画。此外,你只通过 $.ajax() 使用 JSONP。你将使用 .on() 进行事件管理,并保持选择器简单,以便最小选择器引擎可以完成工作。执行此操作的构建命令是:
grunt custom:-sizzle,-css,-event-alias,-effects,-offset,-dimensions,-deprecated,-ajax/xhr
通过 gzip 传输时,该自定义构建生成的文件仅为 17,530 字节,比完整 2.0 构建的 29,387 字节 gzip 文件小 40%。作为比较,当前的 1.9 分支为 32,770 字节 gzip。
我们仍然认为,绝大多数 jQuery 用户最适合使用最简单的选项:使用从 CDN 或本地服务器提供的完整版本的 jQuery。大多数 jQuery 插件都不是以允许你使用 jQuery 核心功能的子集的方式编写的——毕竟,他们从未预料到这些功能会缺失!但是,对于值得花时间确定这些依赖关系的情况,jQuery 当前的模块化水平提供了出色的灵活性。
非常感谢为这个版本贡献了修复的人们:Adam Coulombe、Andrew Plummer、Danil Somsikov、Dmitry Gusev、Isaac Schlueter、James Burke、Jean Boussier、Julian Aubourg、Karl Sieburg、Mark Raddatz、Mike Sherov、Nguyen Phuc Lam、Oleg Gaidarenko、Pascal Borelli、Richard Gibson、Rick Waldron、Ryunosuke Sato、Timmy Willison 和 Timo Tijhof。特别感谢 Scott González 及其简约作品,标题为“空格”。
变更日志
Ajax
构建
核心
Css
Deferred
Effects
事件
操作
选择器
支持
Traversing