【jQuery源码系列】Sizzle

Sizzle是一个纯 JavaScript CSS选择器引擎。jquery1.3开始使用Sizzle,Sizzle一反传统采取了相反的Right To Left的查询匹配方式,效率提高。

Sizzle完全独立于jQuery,若不想用jQuery,你可只用Sizzle实现,压缩3K多http://url.cn/J73IkN

一般选择器的匹配模式(包括jq1.2之前),都是一个顺序的思维方式,在需要递进式匹配时,比如$(‘div span’) 这样的匹配时,执行的操作都是先匹配页面中div然后再匹配它的节点下的span标签,之后返回结果。

Sizzle则采取了相反Right To Left的实现方式,先搜寻页面中所有的span标签,再其后的操作中才去判断它的父节点(包括父节点以上)是否为div,是则压入数组,否则pass,进入下一判断,最后返回该操作序列。

性能上得到了提升,对比性能参考下图

另外,在很多细节上也进行了优化。

 

未完待续...

posted @ 2017-07-12 20:39  likwin  阅读(149)  评论(0编辑  收藏  举报