近日,jQuery Core 团队发布了jQuery 1.8 Beta 1 。其代码位于jQuery CDN 上,地址是http://code.jquery.com/jquery-1.8b1.js。GA 版预计于这个月发布。jQuery Core 团队还谈到了他们对于jQuery 下一个版本1.9 与2.0 的规划,并且提到将要移除对IE6/7/8 的支持。
jQuery 1.8
下面是 1.8 版值得关注的一些变化。
定制化
jQuery 1.8 有一个基于 grunt 的全新构建系统,你可以通过它轻松构建自定义的 jQuery 版本。你现在可以将不需要的模块排除在外以使得 jQuery 尽可能地小。要想构建自己的自定义版本,请克隆 jQuery repo 并使用 grunt 将不需要的模块排除掉。可选的模块有 ajax、css、dimensions、effects 与 offset。比如说,要想移除所有可选的模块,使用的命令将会如下所示:
git clone git://github.com/jquery/jquery.git cd jquery && npm install grunt custom:-ajax,-css,-deprecated,-dimensions,-effects,-offset
这样会生成一个只有约 21KB 大小的定制化 jQuery(最小化且经过 gzip 压缩)。注意到该功能是面向高级用户的,因为你必须得清楚项目的依赖关系,特别是所用的第三方插件之间的依赖关系。感兴趣的读者可以阅读 jQuery README 文件以了解完整信息。
自动化的厂商 CSS 前缀
$.css() 会自动接收不带前缀的属性名,然后生成适合于当前浏览器的前缀。Web 开发者将不必关心所有特定于厂商的属性名了。比如说在 Chrome 中,jQuery 调用 $("#myscroll").css(“marquee-direction”, “backwards”) 会将该 CSS 设为 -webkit-marquee-direction: backwards。
$.Animation
jQuery 动画代码得到了清理和增强,这是通过使用几个扩展点来实现的,这些扩展点能够简化动画的添加与修改。如果需要支持没有内建动画的老式浏览器,那么新的 $.Animation 则提供了坚实的基础。如果你只需要支持现代浏览器并且使用原生支持的动画,那么你可以完全忽略掉动画模块。注意,$.Animation 相关的文档还在编写当中。
Sizzle 选择器引擎更新
Sizzle 是 jQuery 的 CSS 选择器引擎,在 1.8 版中它进行了一次较大规模的重写。重写的结果是对选择器匹配带来了性能上的提升,同时改进了大多数常见选择器的快捷方式。
XSS 防护
jQuery 1.8 引入了新的方法 $.parseHTML,你可以通过它将输入指定为 HTML,并且知道他们将会被解析为 HTML。这是 $() 无法做到的,因为它还会将输入字符串解析为选择器。$.parseHTML 还提供了一种方式将 HTML 解析为 DOM 块并控制脚本的执行。我们强烈建议大家使用 $.parseHTML,特别是输入来自于不受信任的源如 URL 或是用户输入的情况下。jQuery 1.9 做出了很多变化以实现更好的 XSS 防护,下文将会对其进行详述。
全局 Ajax 事件的附加
全局 Ajax 事件,如由 $.ajax 触发的 ajaxStart,目前可以附加到任何元素上了——甚至是不在文档中的元素。这会导致效率的低下,因此 jQuery 1.8 将不建议使用该行为。
jQuery 1.9
下面是 1.9 版的规划,该版本将于 2013 年初发布。
XSS 防护
根据设计,$() 方法可以创建 HTML 元素并运行脚本(如果传递进来的是
评论