私は、約 170 のテーブル行を表示/非表示にする小さな JavaScript を実行しています。IE9 では、これにより断続的にブラウザーが「応答を停止」し、終了します。「Internet Explorer が動作を停止しました...」というダイアログが表示されます。
Chrome では問題ありません。操作が完了するまでに約 1 秒かかります (IE で動作する場合は 1 ~ 2 秒かかります)。
私が行っているのは、再帰関数でこの行を 170 回呼び出すことだけです (id は、テーブル tr 行のそれぞれを一意に識別する GUID です)。
$("#" + id).css("display", "block");
行を表示する間に 1 ミリ秒のタイムアウトをコードに導入すると、毎回動作します!
setTimeout(function () { $("#" + id).css("display", "block"); }, 1);
jquery show メソッドも試してみました。
また、イベント ログに次のようなエラーが表示されます。
エラーが発生しているアプリケーション名: IEXPLORE.EXE、バージョン: 9.0.8112.16448、タイム スタンプ: 0x4fecf1b7 エラーが発生しているモジュール名: MSHTML.dll、バージョン: 9.0.8112.16448、タイム スタンプ: 0x4fecfb0e 例外コード: 0xc0000005 エラーが発生しているオフセット: 0x002cd4e6 エラーが発生しているプロセス ID: 0x1764アプリケーションの開始時刻: 0x01cd9725ec072ed0 エラーが発生しているアプリケーション パス: C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE エラーが発生しているモジュール パス: C:\Windows\system32\MSHTML.dll レポート ID: 721d0e53-03c5-11e2-98c9-005056c00008
繰り返しのタスクを実行するときに、この種の動作を経験した人はいますか?