音の鳴るブログ

鳴らないこともある

Firefoxのバグじゃないの?

WebWorkerを使ったタイマーをFirefoxで使うと「応答のないスクリプト」ダイアログが表示される。試した環境は Mac OS X Lion 10.7.3 の Firefox 12.0 以降。(たぶん Firefox 11.0 ではいける)

 

こんな感じ、postMessageの後、何もしていないのにダイアログが表示される。

window

    var worker = new Worker("./timer.js");
    worker.onmessage = function() {};
    worker.postMessage(null);    

timer.js (woker)

    this.onmessage = function() {
        setInterval(function() {
            postMessage(null);
        }, 100);
    };    

http://dl.dropbox.com/u/645229/webworkertest/index.html

 

 無駄なコードを挟むと出なくなる

window

    var worker = new Worker("./timer.js");
    worker.onmessage = function() {};
    worker.postMessage(null);
    setInterval(function() {}, 1000); // <== Ugly Patch

http://dl.dropbox.com/u/645229/webworkertest/uglypatch.html

 

バグじゃないの?報告すれば良いの?