jQuery开发团队前几天发布了1.8的首个测试版本。
该版本引入了大量的新特性,包括:
1. 模块化
在jQuery 1.8中,您可以移除一些不需要的模块,以构建一个专属的jQuery版本。通过基于grunt的新构建系统,你可以轻松实现该功能。可以移除的模块包括ajax、css、dimensions、effects和offset。更多信息可参阅README file。
2. 根据浏览器为CSS属性加前缀
某 些CSS属性前带有供应商前缀,这表明该属性还未纳入W3C标准。在jQuery 1.8中,可以采用无前缀的属性名,并自动生成适合当前浏览器的前缀。例如,在Chrome中,jQuery调 用$("#myscroll").css("marquee-direction", "backwards")将设置为“-webkit-marquee-direction: backwards”。
3. 动画
在jQuery 1.8中,你可以更容易地添加或修改动画。新的“$.Animation”提供了坚实的基础,并修复了之前版本中的许多bug,以便你的动画能够支持老版浏览器。如果你的Web应用只针对现代浏览器,你可以完全移除animation模块。
4. CSS选择器引擎Sizzle
jQuery 1.8中重写了选择器引擎,大大提升了性能。此外,选择器引擎Sizzle修复了一些边缘问题和bug,包括对于多个选择符(~ > +)的改进、更好地检测浏览器bug等。
5. XSS防护
$()方法可以创建HTML元素,如果被用来传递一个<script>标签,则可以运行脚本。开发者有时会忘记这一点,将不受信任的源或用户输入的字符串传递到jQuery,就可能导致脚本注入,使攻击者可以窃取cookies或破坏页面。
jQuery 1.8引入了一个新的方法“$.parseHTML”。它可以让你指定HTML字符串,它们会被作为HTML解析,$()将作为选择器来解析字符串。 “$.parseHTML”也提供了一种方式将HTML解析为DOM片段,并控制可能包含的任何脚本的执行。这对于由Content Security Policy (CSP)控制的JavaScript环境来说特别重要,因为注入的脚本可能导致安全警告或异常。
在1.9中,一些HTML字符串将不再会被$()识别。
6. 不建议使用或将移除的功能
- $.browser:通过user agent字符串来检测浏览器不是一个好主意,在1.9中将完全移除该方法,不过你可以使用兼容插件。或者你可以试试Modernizr。
- $.sub:该方法是在jQuery 1.5中引入的,但是被证明不是很有用,将被移到jQuery 1.9兼容性插件中。
- 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一个文档中的任何元素中,这将导致效率低下。在1.9中,Ajax事件将只能附加到文档中。
详细信息:JQUERY 1.8 BETA 1
下载地址:http://code.jquery.com/jquery-1.8b1.js
转自:http://www.w3cfuns.com/article-713-1.html