Megoldás: A setInterval nem futtatható normálisan a böngésző hátterében.

Referencia

Worker

Mi a "Web Worker"

A "Web Worker" egyszerű módot kínál a webtartalom számára a szkriptek futtatására egy háttérszálban. A szálak a felhasználói felület megzavarása nélkül végezhetnek feladatokat. Ezenkívül I / O-t is elvégezhetnek az XMLHttpRequest használatával. A létrehozás után a munkavállaló üzenetet küldhet a létrehozó JavaScript-kódnak azáltal, hogy az üzenetet elküldi a kód által meghatározott eseménykezelőnek (és fordítva).

Utasítás

Az alábbi mintakódban a legegyszerűbb időzítőt valósítjuk meg, és hagyjuk, hogy minden 100 milliszekundumban aktiválódjon.

            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");
        

Normál használat

A fenti példában létrehoztunk egy címet a createObjectURL használatával. Mivel a végrehajtandó kód viszonylag egyszerű, ez a módszer tömörebb lesz. Ha a végrehajtandó feladat kódja bonyolultabb, akkor külön írhatjuk a feladatot független js fájlként. Részletekért olvassa el a következő kódot. Vannak részletesebb bevezetések, hivatkozhat a cikk tetején található referencia anyagokra.

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