Landscape トップページ | < 前の日 2006-01-30 2006-01-31 次の日 2006-02-01 >

Landscape - エンジニアのメモ 2006-01-31

Mozilla Firefox / Thunderbird 1.5 で「応答のないスクリプト」ダイアログ


* Mozilla Firefox / Thunderbird 1.5 で「応答のないスクリプト」ダイアログ

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla]

Mozilla Thunerbird 1.5 を使っていると、以下のようなダイアログが表示されることがある。

警告: 応答のないスクリプト

このページのスクリプトは処理中または応答しなくなっています。今すぐスクリプトを停止するか、
処理が完了するまで待つか選択してください。

スクリプトを停止
処理を続行

どうやらスクリプトの処理に時間がかかってタイムアウトしたときに出るダイアログのようだ。私はとくに時間のかかるスクリプトを実行した覚えはないんだけど、Thunderbird が内部的に何かやっているんだろう。メール受信時のフィルタやスパム判定などで時間がかかってるのかな?

このダイアログが出ている時は、Mozilla の他にもたくさんアプリケーションを起動していてマシン全体が重くなっている。OS は複数のアプリを平行して処理できるが、私は一個のアプリしか処理できない。Mozilla にだけ構っていられる状態じゃないので、時間がかかっても良いので勝手に処理を継続してくれる方がありがたい。

要するに、こんなダイアログを出さずにしばらくの間は処理を続行してほしいわけだ。タイムアウトの閾値を延ばしてダイアログが出ないように回避するとしよう。

- about:config で dom.max_script_run_time を変更してタイムアウトまでの時間を変更

私の使っている Mozilla Thunderbird バージョン 1.5 (20051201) には、GUI で設定できるオプションにタイムアウトの閾値を設定できそうな項目が見あたらなかった。仕方がないので、ユーザー設定ファイル user.js で設定できそうな項目を探してみる。たぶん Script Timeout とかそういう名前の項目がきっとあるはず。

ツール(T) の オプション(O) の詳細設定 の設定エディタ(G) から about:config を起動し、Timeout で検索。ヒットしない。Script で検索したらどう? たくさんヒットした。その中に dom.max_script_run_time というキーがある。これかな? Google で dom.max_script_run_time を検索。どうやらこれが「応答のないスクリプト」の閾値を設定できる項目のようだ。

とりあえず初期値の5を30に変更してみた。

以下は参考にしたもじら組の掲示板。ダイアログのメッセージが英語になってるけど。

Mozilla-gumi Forum [One Topic All View / また掲示板の不調? / Page: 0]
http://forum.mozilla.gr.jp/?mode=al2&namber=10416&re ...
> Ninja Systemのアクセスコントロール(Javascriptを無効の場合アクセス制限)と”こうさぎ”が利用されているブログにアクセスすると、必ずではありませんが、かなりの確率で”Script warning”が出ます。
> ---------------------------
> A script on this page is causing mozilla to run slowly. If it continues to run, your computer may become unresponsive.
>
> Do you want to abort the script?
> ---------------------------
> 実際のところスクリプトを有効にしても(この場合は警告に対して「キャンセル」を選ぶ)、問題は起こっていないので、この警告が出ないようにしたいのですが、どこをどういじればよいのかわかりません。ご教授お願いいたします。

「Do you want to abort the script?」という警告は、
スクリプトがループしてdom.max_script_run_time(about:configでは5になっているはず)以上の時間がたった時にでるはずです。
( See http://bugzilla.mozilla.org/show_bug.cgi?id=13350 )
ダイアログで「キャンセル」してアボートさせない場合は、CPUが100%になるなどの現象は起こっていませんか?
また、ダイアログで「OK」を返してアボートさせるとどうなりますか?

なお、dom.max_script_run_timeの値はall.jsの中のものが使われるようで、
prefs.jsやabout:configで変更しても効かないようです。
( See http://bugzilla.mozilla.org/show_bug.cgi?id=247225 )

って、about:config で設定してもダメなの? それってユーザー設定を無視するというバグなんじゃないか? まあ、上記議論が行われたのは2004年だし、仕様が変わってるかもしれない。とりあえず about:config でだけ設定しておいて、効いてなさそうだったら all.js の値を変更することにしよう。しばらく様子見だね。

2006年2月2日追記。
SmallStyle で、about:config の設定が有効かどうかを試験してくださっていた。ありがとうございます。
[Firefox] 応答のないスクリプトダイアログと dom.max_script_run_time - SmallStyle (2006-01-31)
http://www.smallstyle.com/20060131.html#p01
about:config で設定された値は,うまく動作しているようです.

私の環境でも、about:config で30に設定して以来「応答のないスクリプト」ダイアログは表示されなくなっています。「実行中はUI がロックされてしまう」という問題があるとのことですが、私の場合は Mozilla を常に操作し続けているわけではないので、いまのところ問題になってはいません。しばらくこのまま運用しようと思っています。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。