Sleipnir(というかIE6)のJavaScript処理の遅さが相変わらず致命的すぎるのと、
FireBugでチェックする機会が多くなったので、FireFoxを使用する機会が増えました。
それでも7:3くらいでSleipnirだけど。
基本的に、JavaScriptの描画が重いサイトについては、
セキュリティモードで開くことになってるけど、
使用頻度が高いサイトに関してはFireFoxで開く。
例えば、FireFoxのホームははてなブックマークになってます。
んで、それらの間に、次の2つを織り込んで、
FireFox上で『Sleipnirで開く』を実行する。(その2) – NOBODY:PLACE – MUTTER
[sleipnir] Sleipnir上で『FireFoxで開く』を実行する。 – NOBODY:PLACE – MUTTER
どちらか使いやすい方で開くっていう感じ。
どのページが重いのか?
実際にいくつか上げてみますと。スポナビの個別記事ページ
スポーツナビ|黒田、英語の歌披露へ 新人の洗礼
トップページは別に問題がない。
2つの差は何なんだろう…と考えてソースを眺めてみてもそう大きくは変わらず、
これがあるかないかくらい。
MAJOR.JPの個別ページ
MAJOR.JP|MLB ニュース
MAJOR.JPもスポナビと同じYahoo!Japanなので、
共通してる部分はあるけれども、スポナビよりはトップと個別の差が大きい。
ので、変わっている点を指摘するのは難しいけど、
とりあえず、スポナビと同じecl.jsの有無という差はある。
ちなみに中身は、エンコード毎のエスケープのための関数。
はてなブックマークトップページ以外(特にユーザページ)
はてなブックマーク - Hatena::Bookmark::konaze
はてなブックマークの場合、トップとの比較で分かりやすいのははてなスター。
んで、はてなスターと言えばgetElementByClassName。
getElementByClassNameといえばDOM。
404 Blog Not Found
404 Blog Not Found:NEET = Network-based Education, Employment, and Training
404はウィジェットが凄い多いので絞りきれないけれども、
トップページも重いことを考えると、やはりその辺か。
さすがにスクリプト全部精査とかしたくないのでしないけど。
ちなみにlivedoor Blogが重いということではなさそう。
他のブログも全て重いというわけではないので。
痛いニュースとか全然大丈夫だし。
痛いニュース(ノ∀`):資産2億の株式ディーラー「BNFは単に運が良かっただけ。ディーラーと一騎打ちなら必ず負ける」
以前弾さんが、“うちのサイトではFireFoxが多い”みたいなことを書いてたけども、
単に重くて見れないからじゃないかっていう気もする。
気がするだけだけど。
GIZMODO JAPAN(特に個別ページ)
大量のピンポン玉を打ち出して楽器を奏でるマシーン(動画) : Gizmodo Japan(ギズモード・ジャパン)
GIZMODOの場合は動作に特徴があって、
- ページを閉じるときにも重くなる
- セキュアモードでアクセスすると、Amazonアソシエイトのみ表示する画面に飛ばされる
そういうわけなので、デフォルトモードでアクセスせざるを得なくて、
なおかつ閉じるときも重いので諦めてアクセスしないと無理的な。
中身についてはprototype.jsがあるし、これもやっぱりDOMかなぁと思うけど、
いやでもlighboxのためだけにしか使ってない可能性もあるし…
…まだあったような気がするけど、とりあえずこんなもんで。
(あ、mixiもそうだわ)
どこが問題になってるんだろう?
個人的な仮説としては、超ありきたりだけど、やはりIEのDOM解析の遅さってのが問題なんだろうな。
Xpathあたりとか。
ppBlog1.7.1当然ながら、XPathをサポートしていないIE6,7は、通常通りDOM解析をするアプローチしかないです。こちらの計測では、XPathを利用するより5倍ほど遅いです。
Sleipnirはその辺IEに依存してるわけなので、
IEのバグはそのままストレートに出るし、仕様と言わざるを得ないだろうと。
仕方のないこと…かなぁ。
フェンリルはそれで良いんだろうか。
良いんだろうかって言われても困るだろうけど。
個人的にJavaScriptを書くときには、
prototypeのXpathを使用するような動作(getElementByClassNameとか)を、
多用しないように気をつけるしかないなーと思う。
こちらで書かれている通り、
prototype.js でタブ切り替え(複数表示版) - AUSGANG SOFTdocument.getElementsByClassName の使用をやめました。
ページによっては非常に重いという指摘をいただいていたので、必要ないようにしてみました。
構造の改造が必要にはなるけれども、
構造によっては工夫次第でgetElementsByClassNameを回避し、
結果としてパフォーマンスを上げられるはず。
このサイトのちょっとした仕組みでさえ、時間掛かるもんね。
まぁそういうわけで、Sleipnirで閲覧困難なページをFireFoxから見てるんですが、
それにしても今さら過ぎるけど、FireBug便利すぎw
Sleipnirにも、Hawkeyeっていう凄いプラグインがあるけど、
Sleipnir | プラグイン | Hawkeye
ソースをシームレスに見れるかどうかとか、
ページ遷移/ページ更新時に追跡してくれるかとか、
CSS/JavaScriptのデバッグのし易さとか、
ちょっと敵わないかなーとか思う。