新年新气象,jQuery 团队于昨日发布了两个新版本:1.12 和 2.2。这两个版本都包含了大量的Bug修正和功能改进。基本上这会是3.0之前最后一次发布。不过由于3.0不做向下兼容,所以届时 jQuery 团队仍然会继续维护这两个版本,当然肯定只做Bug修正。关于3.0的消息将在不久之后公布。
那么新版本都有些什么变化呢?
性能提升
此版本缩短了 Sizzle 的引用路径,这样当原生 querySelectorAll
和 matchesSelector
无法使用时,可以带来性能提升。在生产环境中效果明显。
新功能
小升级很多,这里只拣要紧的说。
SVG 的类操作
作为 HTML 库,支持 SVG 元素是理所应当的。新版本里大家就可以使用 .addClass()
、 .removeClass()
、.toggleClass()
、 .hasClass()
操作 SVG 对象的 class
了。不过需要注意的是,因为 SVG 和 HTML 还是有很多不同,所以如果真的要进行复杂操作,还是选用其它更专业的类库比较好。
jQuery.post 和 jQuery.get 支持对象参数
如题:
jQuery.post({
url: “/example”
});
这样一来好处还比较多,比如设置回调函数的 context
,或者跨域 post 时可以 withCredential: true
。
新运算符支持
支持 ES6/ES2015 引入的新运算符, jQuery 对象可以用 for-of
遍历了。
for (element of $elements) {
console.log(element);
}
jQuery.htmlPrefilter()
HTML5不要求标签必须闭合,但是XML要求。这个函数就是用来作转换的。这样我们使用 .html()
、 .append()
、.replaceWith()
时就不需要人工转换了。进而,我们也就不需要那么严格的校验输入了。
jQuery.uniqueSort()
jQuery.unique()
命名有点问题,没能体现排序,所以这次改名为 jQuery.uniqueSort()
。jQuery.unique()
仍然保留,不过文档中将只记录后者。
这个函数专注于 DOM 节点的排序和排重,请勿乱用。
总结
这个版本理论上没有太大变化,可以平滑升级。不过如果谁还是脸黑遇到什么问题,也请汇报给官方。