超快的css3 selector引擎:kquery

jopen 11年前

kquery实现了css3中除伪元素(pseudo-element)外的其他选择器。由于采用的编译缓存,在速度上(通常指不支持QSA的浏览器, 或者禁用掉qsa)明显超越其他选择器引擎。

在结果的准确性上也高于其他引擎(编译器系统只会缓存查询语句而不缓存查询结果, 号称速度最快的peppy则缓存了查询结果)。在支持的选择器种类上也多于其他引擎(这里不得不踢下nwmatcher, 在我所了解的引擎中它是除kquery之外在速度、支持的种类、准确性上都非常棒的引擎)。

感谢Q.js及Sizzle.js, 从它们中间借鉴了很多有用的东西。

kquery有什么特点? 其实上面的介绍已经在三个主要的方面体现出了。

1. 和nwmatcher一样是目前支持的selectors种类最多的
2. 速度上领先于其他引擎(编译系统找出最快的查询语句并缓存), 尤其是在伪类上(其他常用id class tag选择器各个引擎之间的其实差距不是太大)
3. 准确性上优势(理论上,由于不缓存查询结果即使dom在高速的变化,也能保持查询结果的准确)
4. 兼容ie+/chrome/firefox/safari/opera等浏览器(没有在各大浏览器的各个版本都进行过测试,欢迎反馈)
5. 支持扩展自定义伪类

项目地址: https://github.com/yessky/kquery

速度测试: http://test.veryos.com/selector/slickspeed/index.html
速度测试环境:没有禁用querySelectorAll,没有禁用各个引擎的缓存结果

Testsuite: http://test.veryos.com/selector/testsuite.html

如发现任何bug,欢迎反馈至admin@veryos.com或者在github上create ticket