2013-05-01 10 views
5

私はIE9を使用しています.F12ツールを使用してIE8標準モードにして、私のページをテストしています。ページスクリプトでは、getBoundingClientRectを使用して、ビューポートに表示される内容を調整します。IE8でgetBoundingClientRectが遅いのはなぜですか?

プロファイリングツールを使用して、私はgetBoundingClientRectへの呼び出しに多くの時間を費やしています。たとえば、この関数への244回の呼び出しには、4,361msの排他時間がかかっていました。

IE8ではこの機能が非常に遅い理由はありますか? IE9モード、Chrome、FireFoxなどで動作している場合、この機能は高速に見えます。

+0

どのように呼び出すかによって、DOMリフローがトリガーされる可能性があります。 – Bergi

答えて

0

getBoundingClientRectは、MicrosoftによってIE5で最初に導入されました。パフォーマンスに関する既知の問題はありません。

のjQuery UI、および他の人は、それを使用して、過去に彼らはそれに移動し、最高だった:http://ejohn.org/blog/getboundingclientrect-is-awesome/

私はjQuery similar calculationgetBoundingClientRect間の比較が見つかりました: http://jsperf.com/getboundingclientrect-vs-jquery 通常getBoundingClientRect

あなたに勝ちますあなたのサイトをIE8の互換モードで動作させている場合があります。実際のIE8ブラウザでテストすることはできますか?ここでのパフォーマンスは同じでなければなりません。

+0

今週末にIE8 VMをセットアップしてテストします。私はそれがちょうどcompatモードが遅いことを望んでいます。 –

+4

@AndrewDavey同じ問題が発生しています。パフォーマンスの問題が互換モードの副作用に過ぎないかどうかを確認しましたか? –

+3

@LarsGrammel - これは適切だと思われます:http://xkcd.com/979/ – Bobson

関連する問題