| HOME | README | DEMO | CLASS | CHANGE LOG | DONATE | LICENSE |
uuQuery.js は、CSS 3の仕様に準拠しつつ高速性を実現しています。
uuQuery.js は Firefox3.5, Safari3, Google Chrome, Opera10, IE8 で、
document.querySelectorAll() メソッドを利用します。 不正なクエリに対して、全ての項目でエラーが発生する(ライブラリによっては検索結果がゼロになる)ことを期待したテストです。
このテスト結果から、各ブラウザが実装している querySelectorAll にも、微妙な解釈の違いやバグが見られます。
[RUN] をクリックするとテストページにジャンプします。テストが途中で止まる場合は何度かリロードしてみてください。
[+ SCREEN SHOT] をクリックするとテスト結果の画像をご覧になれます。画像にある uupaa-selector-2.0.2.js は uuQuery.js(ver 1.0)と同じものです。
[ブラウザ要因の制限事項] uuQuery.js は querySelectorAll が利用可能な場合は、querySelectorAll の実行結果をそのまま返すため、
以下のケースで正しい結果が得られないことが判っています。:not の利用には注意が必要です。
| Browser | querySelectorAll(expression) | Result |
|---|---|---|
| Firefox3.5 | :not() | エラーにならない |
| Google Chrome3β | :not(div.class) | エラーにならない |
| Safari4 | :not(div.class) | エラーにならない |
JavaScript で書かれた querySelectorAll 相当の機能が、 ブラウザがネイティブに実装する querySelectorAll と整合性が取れているか確認できます。
数字はあくまで参考程度にお考え下さい。
クラスセレクタは最も多用するセレクタです。
このテストでは、各ライブラリが提供している最も効率的な方法で <div class="example"> や <div class="example1 example2 example3"> を検索します。
uuQuery.js では、包括的な uuQuery() よりも uuQuery.className() のほうが高速です。
uuQuery.js をロードすると全機能が利用可能になります。
機能制限版の uuQuery.lite.js をロードした場合は、CSS3 セレクタと ★ 付きのセレクタのみ利用可能です。
| :nth-child | :hover | :focus |
:visited は、セキュリティ上の問題があるため、機能を無効にした状態でリリースしています。
リスクを正しく理解し、かつ :visited を利用する必要がある場合は、
uuQuery.js を読み込む前に、window.UUQUERY_ENABLE_VISITED = 1; を定義し、:visited を有効にしてください。
:visited が無効な状態では、未訪問, 訪問済みを区別しないため、 :link は全てのリンクと一致します。
| :visited 無効 | ★ :link ★ :visited |
| :visited 有効 | ★ :link ★ :visited |
| :first | :last | :even | :odd | :eq | :gt | :lt | :parent | :header | :selected |
| :input | :button | :text | :password | :radio | :checkbox | :submit | :image | :reset | :file |
| :hidden | :visible |