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,进入下一判断,最后返回该操作序列。
性能上得到了提升,对比性能参考下图
另外,在很多细节上也进行了优化。
未完待续...