IE6のjavascriptチューニング

IE6こと腐った牛乳について次のような事が分かったのでメモしておく。

  • 分かっていたがやつらはベラボーに遅い
    • ChromeとかFirefoxで1秒未満でできることが2分もかかることはざら。
  • 文字列結合よりもArrayにつっこんでjoinがよい。
  • DOM操作は非常に重いので回数を絞る
    • jQueryでXX.childrenなどとやるとChrome最新版と3、4桁違う実行速度になってしまう。
  • jQueryのappendよりもinnerHTMLの方が早い。
    • 上のchildrenもjavascriptでごりごり書けば早そうだがjQueryを使う意味をなくすのでそこまでやらなかった。
    • 半分ぐらい?
  • 文字リテラルを極力使わない。
    • ただしjQueryに引き渡す場合は文字リテラルでないといけない箇所が・・・
    • なので結合、比較用の文字列を変数に入れて使用する。
    • 心持ち早くなる0.1secぐらい。

これでDivが5000個ぐらいの表でCPU PentiumM1.5Ghzで5秒ぐらい。もちろんChrome5であれば0.5秒ぐらい?

ちなみにUbuntu+WineでもIE6は動くが・・・

  • 使用できるのはIE6のsp1まで
    • WinXP SP3に載っているのはIE6 SP3
    • これはSP3の一部として配布されているので単体では入手できない。
  • ActiveXで実現できる機能が一部使えない。
    • IE6専用拡張のフィルターまわり
    • エラーにはならないが本来期待した効果が出ない。
  • 不安定
    • 一度安定起動したら終了すべきではない
      • マシン再起動まで動かなくなる。
    • VMに突っ込んで置けばOK
      • OSは起動状態のままVMを終了(一時停止)できるため

こんな腐った牛乳が後4年も現役とは・・・不況だからなぁ
みんな!Ubuntu使おうよ!