• jQuery 1.8、1.9与2.0特性概览,2.0将移除对IE6/7/8的支持


    近日,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元素并运行脚本(如果传递进来的是<script>标签)。但开发者有时会忘记这一点,将来自不 受信任源的字符串传递给jQuery,这会导致跨站脚本(XSS)攻击。在jQuery 1.9中,对$()方法来说“看起来像是HTML”的规则将会得到更加严格的处理。一个字符串只有第一个字母是小于号才会被当作是HTML,否则就会被当 作是CSS选择器。由于根据这些更加严格的规则,某些HTML字符串将无法被$()识别出来,因此请确保在使用该功能时仔细检查你的代码,也可以使 用$.parseHTML作为替代函数。

    移除$.browser与$.sub

    从jQuery 1.3开始,$.browser就不建议被使用了,并且将于jQuery 1.9被移除。还在使用$.browser的开发者应该看看$.support或Modernizr以进行特性检测。其他选择有使用jQuery 1.9 compatibility插件、或是直接读取navigator.userAgent字符串。

    从jQuery 1.7开始,$.sub就不建议被使用了,并且将于jQuery 1.9被移除。该函数会创建jQuery的一个新副本,其属性与方法可以被修改,同时又不会影响到原来的jQuery对象。事实证明,该函数并不是那么有 用,因此将会被移到1.9 compatibility插件中。我们期望在移除掉这么多不建议使用的条目后,jQuery 1.9的文件尺寸能够变得更小一些。

    jQuery 2.0

    下面是2.0版的规划,该版本将于2013年初发布,就在jQuery 1.9发布之后不久。

    移除对IE6/IE7/IE8的支持

    jQuery 2.0所支持的APIs与jQuery 1.9一样。它并不会增加什么主要的特性,但却会移除对IE 6/7/8怪癖的支持,比如说臭名昭著的事件模型、IE7的“attroperties”、HTML5 shims等等。1.9与2.0的目标是对于他们所支持的API来说能够实现互换。jQuery 2.0将会更小、更快,同时不再有为了支持IE6/7/8所引入的那些问题。如果需要支持IE6/7/8,那么请选择1.9;否则,你既可以使用1.9也 可以使用2.0。你还可以通过条件注释在使用IE6/7/8时只包含进1.9。

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

    即便在jQuery 2.0发布后,jQuery团队也将会继续支持和维护1.9,只要IE6/7/8的影响还在就不会停止对其的支持。jQuery团队并未计划未来添加大量的新APIs,新的功能将会以兼容于1.9与2.0的插件的形式添加进来。

    要想了解更多信息,请阅读jQuery 1.8 Beta 1: See What's Coming (And Going!)jQuery Core: Version 1.9 And Beyond

  • 相关阅读:
    使用replaceAll替换“/”为“/”
    如何在Lucene里面进行数字范围搜索 (Numeric Range Query)
    Java中的参数传递
    安装配置WordPress 3.0的多站点功能
    Apache Hadoop 项目介绍
    Java中的Set操作
    使用Desktop API in Java SE 6打开文件或者网页
    Java集合(转帖)
    数据结构牛客网习题纠错130
    PAT 1045 Favorite Color Stripe[dp][难]
  • 原文地址:https://www.cnblogs.com/shihao/p/2593509.html
Copyright © 2020-2023  润新知