"このページのスクリプトが、Internet Explorer の実行速度を遅くしています" というエラー メッセージが表示される


概要


スクリプトの中には実行時間の長いものがあるため、Internet Explorer では、時間のかかるスクリプトについては実行の継続の承認を求めるメッセージが表示されます。一部のテストやベンチマークで実行時間の長いスクリプトを使用する場合、承認を求めるメッセージ ボックスが表示されるまでの時間を延長することができます。Internet Explorer では、レジストリ エントリを変更することによって、特定のクライアント コンピューター上でのスクリプトのタイムアウト値を変更できます。

詳細


Web ページには、実行時間が非常に長いスクリプトが含まれている場合があります。Web ページ上で非常に大きなファイルの転送や大規模なデータベース クエリを実行する ActiveX コントロールを使用するスクリプトを作成する場合、このスクリプトによって処理が大幅に遅れることがよくあります。Internet Explorer 3.02 は長時間の遅延を検出し、次のようなダイアログ ボックスを表示してユーザーの承認を求めます。
このページには、終了するのに異常に長い時間のかかるスクリプトが含まれています。このスクリプトを今すぐ終了するには [キャンセル] をクリックします。
Internet Explorer 4.0 から 8 では、同様の場合に次のメッセージが表示されます。
このページのスクリプトが、Internet Explorer の実行速度を遅くしています。スクリプトを実行し続けると、コンピューターが反応しなくなる可能性があります。スクリプトを中断しますか?
このメカニズムによって、ユーザーは、無限ループに陥って誤動作しているスクリプトや、実行に時間のかかるスクリプトを停止することができます。

Internet Explorer 3.02 の場合、このメッセージ ボックスは Windows 95 を実行しているコンピューターで表示されます。Internet Explorer 3.02 は、特にスクリプト スレッドが過去 5 秒間にウィンドウ メッセージを処理したかどうかを監視しています。Internet Explorer 3.02 では、このタイムアウト時間を変更する方法はありません。長時間のブロッキング処理を伴う ActiveX コントロールを使用する場合は、イベント メカニズムを使用して呼び出し側に制御を返すか、または 5 秒間隔で PeekMessage を呼び出してタイムアウトをリセットする必要があります。

Internet Explorer 4.0 以降では、タイムアウトは Windows メッセージに基づく固定値ではありません。今すぐ Internet Explorer は、実行されるスクリプト ステートメントの合計数を追跡し、起動すると、このようなタイムアウトからまたはスクリプト エンジンが現在のページに、イベント ハンドラーからは、新しいスクリプトを実行するたびに、値をリセットします。 Internet Explorer は、その値がしきい値を超えると "実行時間の長いスクリプト" のダイアログ ボックスを表示します。Internet Explorer は、各命令の制限を超えるかどうかをチェックしません。スクリプト エンジンは定期的に実行されたステートメントの数を使用して Internet Explorer に対してポーリングを行い、Internet Explorer はその数が制限を超えていないかどうかをチェックします。このメカニズムにより、スクリプト エンジンが Internet Explorer に対してポーリングを行う前にスクリプト全体の実行が完了する場合は、ダイアログを表示せずに既定の制限を超えるステートメントを実行することができます。

Internet Explorer のバージョン 4.0 8 からでは、このタイムアウト値を変更するには、「私の問題を修正」セクションに進んでください。自分でこの問題を解決する場合は、「自分で解決する」セクションに移動します。

Fix it で解決する

この問題を自動的に解決するには、[この問題を解決する] ボタンまたはリンクをクリックし、[ファイルのダウンロード] ダイアログ ボックスで [実行] をクリックし、このウィザードの手順に従います。

注:
  • このウィザードは英語版のみに適用されることがあります。しかし、自動的な解決は英語版以外の Windows でも機能します。
  • 操作しているコンピューターに問題がない場合、Fix it ソリューションをフラッシュ ドライブまたは CD に保存して、問題のあるコンピューターで実行することができます。

次に、移動、"問題が修正されたですか?"セクション。



自分で解決する

重要 このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。そのため、レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。そうすることで、問題が発生した場合にレジストリを復元することができます。レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。
322756の方法をバックアップし、Windows のレジストリを復元するには


Internet Explorer 4.0 から 8 でタイムアウト値を変更するには、以下の手順を実行します。
  1. Regedt32.exe などのレジストリ エディターを使用して、次のキーを開きます
    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles

    注: Styles キーが存在しない場合は、Styles という名前の新しいキーを作成します。
  2. このキーの下に "MaxScriptStatements" という新規 DWORD 値を作成し、任意のスクリプト ステートメントの数を設定します。に関する値を設定するときにする必要があります aure でない場合は、0 xffffffff に設定] ダイアログ ボックスを回避するのには、DWORD 値に設定できます。
既定では、キーは存在しません。キーが追加されていない場合、Internet Explorer 4 およびそれ以降のバージョンでは、タイムアウト ダイアログ ボックスの既定のしきい値の制限は 5,000,000 ステートメントです。

Internet Explorer 4.0 から 8 のタイムアウトは、実行されたスクリプト ステートメントの数に基づいているため、ActiveX コントロールまたはデータベース アクセスによる遅延の間はタイムアウトのダイアログ ボックスは表示されません。スクリプトで無限ループが検出されます。

問題は解決しましたか?

  • 問題が解決したかどうかを確認してください。問題が解決した場合は、このセクションで終了です。問題が解決しない場合は、サポートに問い合わせてください。
  • フィードバックをお待ちしております。フィードバックを提供する、またはこのソリューションで発生する問題を報告するには、「私の問題を修正」ブログにコメントを記入するかしてください送信します。
    電子メール

関連情報


速度、セキュリティ、および Internet Explorer 8 の適応性に関する詳細については、次のマイクロソフト Web サイトを参照してください。