最近、Firefoxで処理が重くなったときにこんなメッセージがダイアログで出るようになりました。
警告:応答のないスクリプト
このページのスクリプトは処理に時間がかかっているか応答しなくなっています。今すぐスクリプトを停止するか、スクリプトをデバッガで開くか、このまま処理を続行させるか選択してください。
で、「スクリプトをデバッグ」「処理を続行」「スクリプトを停止」というボタンのどれかをクリックしないと、次の操作へ進めません。
このメッセージをよく見かけるのは、WordPressの「管理」メニューから「カテゴリー」をクリックしたとき。
なので、「WordPressの調子が悪いのかなー」と思っていたのですが、調べてみるとどうやらFirefoxの設定のようです。
(WordPressの方は、単純にカテゴリーの数が増えたせいで処理が重くなってただけかと)
要は、Firefoxはある設定された時間だけ待ってくれるけど、その時間を過ぎて「スクリプトが応答してない」と判断したときにこのメッセージが出るワケですね。
ということは、「スクリプトが応答してない」と判断するまでの時間を伸ばしてやれば、メッセージも出なく(出にくく)なるワケです。
Firefox - about:configで「dom.max_script_run_time」を設定
「スクリプトが応答してない」と判断するまでの時間は、「dom.max_script_run_time」という項目で設定します。
その方法は、
- Firefoxのロケーションバー(URLの入力欄。IEで言うところのアドレス欄)に「about:config」と入力。
- Firefoxの設定項目が一覧で表示される。
- その中から「dom.max_script_run_time」(初期値:10)を探す。
- 見つかったら、ダブルクリック。
- ダイアログが開くので、任意の数値を入力。
(僕はとりあえず30にしておきました) - 「OK」ボタンをクリックして元の画面に戻り、数値が変更されていることを確認。
これで、ちょっとくらいスクリプトが応答していなくても、Firefoxは気長に待ってくれるはずです。
設定する数値については、本当にヤバいときに備えるためにも短めにしておいた方が良いんでしょうね。
(長過ぎたら単にウザいってのもありますが)
僕の場合は30にしたら、メッセージはまったく出なくなりました。
ある特定の場面や操作で頻繁に出るようなら、それが出なくなる最小の数値というのを一つの基準にしたら良いのかもしれません。
参考にしたサイト
- Landscape - Mozilla Firefox / Thunderbird 1.5 で「応答のないスクリプト」ダイアログ
- Another divergence to an intruder - firefoxの「警告:応答のないスクリプト」を止める方法
- Shoulder.jp - 「警告 : 応答のないスクリプト」というダイアログを消す方法
- SmallStyle - 応答のないスクリプトダイアログと dom.max_script_run_time
その他の原因
Firefox用エクステンション(アドオンのこと?)が原因で、同じようなメッセージが出ることもあるみたいです。