超快的css3 selector引擎:kquery
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