2011-02-19 8 views
2

IEが判断するJavaScriptがあるページがあります。 Firefoxはこの同じページで正常に動作します。この問題をデバッグするにはどうすればよいですか? Firebugのプロファイラが問題を正確に評価できるかどうかはわかりませんでしたか?IEで長時間実行されているJavaScriptをプロファイリングする

+1

このジャバスクリプトが何をしているか説明する機会はありますか?理想的にはいくつかのサンプルスニペットを提供しますか?この問題の一部である –

+1

ページには多くのjavascriptがあり、IEはどちらが問題を引き起こしているかを報告しません。 – stevebot

+0

ええ、これらの状況の下で助けをするのはちょっと難しいです。おそらく、開発者が何らかの問題に遭遇したときの最初のことであるコードの一部を除外することによって、問題を絞り込む必要があります。 –

答えて

1

IEを使用している場合は、組み込みプロファイラを使用できます。 F12を押して開発者ツールバーを開き、スクリプトタブにはFirebugのようにプロファイルするためのボタンがあります。 [デバッグ開始]ボタンをクリックしてコードをステップ実行し、エラーの発生場所を確認することもできます。

2

IE8にはデバッガもあります。ちょうどF12を押して、それをステップ実行してください。 console.logのロギングステートメントを追加して、IEのコンソール出力を確認することもできます。長時間実行されているJSを見つけたら、setTimeout呼び出しで分割することができます。

このKB記事は、長時間実行されるスクリプトタイマーがどのように機能するかについて説明します。http://support.microsoft.com/kb/175500

Internet Explorerは、今実行されるスクリプト文の合計数を追跡し、値に新しいスクリプトの実行が開始されるたびにリセットされます、などタイムアウトまたはイベントハンドラから、スクリプトエンジンを使用して現在のページを検索します。 Internet Explorerは、その値がしきい値を超えると、「長時間実行されるスクリプト」ダイアログボックスを表示します。 Internet Explorerは各命令をチェックして制限を超えているかどうかを確認しません。スクリプトエンジンは定期的に実行されたステートメントの数でInternet Explorerをポーリングし、Internet Explorerはそれが制限を超えているかどうかをチェックします。記事に記載されている修正プログラムがローカルマシンに簡単に特有のものであり、はそれはそれは、タイマーを長くするために、あなたのレジストリ設定を変更する方法を説明します、である(他のユーザーのために、あなたのコードを修正しません。という

注意..これはあなたにとって有用ではありません)。

関連する問題