年末年始でセレクタエンジンHayate.jsを書いてみた
Posted: Updated:
年末年始の課題
年末年始の合間を縫いつつセレクタエンジンを書いてみました.・・・なんか大仰な響きだけはしますね.例によってコンセプトの足りてない習作系の再発明品です.
いくつかのpseudoについて真剣に解決が見つからなかったり,サボったりしていますが,とりあえずSlickSpeed Selectors Testのデフォルトセットは通るようにしている(はず)です.
Hayate.js
バンダイチャンネルで某アニメを見ながら書き始めたので,こんな名前がついていますが,より多く作業中に見たアニメは僕は友達が少ないでした.ついついラノベ原作のほうも買ってしまいましたよHAHAHA...
振り返ると
学びとしては...
- CSSでも普段つかっていなかったセレクタを振り返れた
- だってCSS3のセレクタとかあんまり使いませんよね...
- 処理速度のシビアなチューニングを垣間見た
- やり方ひとつで,1msになったり300msになったりおもしろい
- 正規表現のコストと向き合えた
- ブラウザ間のCSSセレクタのサポート差違を調べられた
- 高速化を突き詰める深淵クラスタすごいと思えた
ぱっと見で,他の国産ライブラリと比べても精度・対応範囲に対してコード全体の行数がかさんでしまっているので,実用性についてはアレな感じですね.速度面で極端に劣ることはないようにしているつもり.
あとは,Sizzleみたいに独自pseudoとか,Selectors Level 4に対応したら面白いかな〜と思いつつコツコツ手を入れていく予定です.
大変なモンですね...
セレクタエンジンの再発明とか,暇人も甚だしい上に,このロジックの勘所を押さえたところで,滅び行く技術&レガシーIEも消え去る運命っちゃ運命ですが...なかなか勉強になったとおもいます.
年末年始を楽しみつつですね
海老をむさぼったり,そばをすすったり,おせち食べたり,雑煮つくったり,色々する中の時間で書いてました.
つきましては,明けましておめでとうございました m(_ _)m