解決策:setIntervalは、ブラウザーのバックグラウンドで正常に実行できません。

参照

Worker

「WebWorker」とは

「WebWorker」は、Webコンテンツがバックグラウンドスレッドでスクリプトを実行するための簡単な方法を提供します。スレッドは、ユーザーインターフェイスを妨げることなくタスクを実行できます。さらに、XMLHttpRequestを使用してI / Oを実行できます。作成されたワーカーは、コードで指定されたイベントハンドラーにメッセージを投稿することで(またはその逆)、メッセージを作成したJavaScriptコードにメッセージを送信できます。

指示

以下のサンプルコードでは、最も単純なタイマーを実装し、100ミリ秒ごとにトリガーします。

            var timmer = new Worker(
    URL.createObjectURL(
        new Blob(
            [
                "onmessage=function(event){setInterval(function(){postMessage(1);},100)}",
            ],
            { type: "application/javascript" }
        )
    )
);
timmer.onmessage = function (event) {
    console.log("get message");
};
timmer.postMessage("start");
        

標準的な使用法

上記の例では、createObjectURLを使用してアドレスを作成しました。実行する必要のあるコードは比較的単純なので、このメソッドはより簡潔になります。実行する必要のあるタスクのコードがより複雑な場合は、タスクを独立したjsファイルとして個別に記述できます。詳細については、以下のコードを参照してください。より詳細な紹介があります、あなたは記事の上部にある参考資料を参照することができます。

            var timmer = new Worker('worker.js');