Rješenje: setInterval ne može normalno raditi u pozadini preglednika.

Referenca

Worker

Šta je "Web Worker"

"Web Worker" pruža jednostavan način za web sadržaj za pokretanje skripti u pozadini niti. Niti mogu izvršavati zadatke bez ometanja korisničkog sučelja. Pored toga, mogu izvoditi I / O pomoću XMLHttpRequest. Jednom stvoren, radnik može poslati poruku JavaScript kodu koji ga je kreirao, objavljivanjem poruke u obrađivaču događaja navedenom kodom (i obrnuto).

Instrukcije

U donjem uzorku koda implementiramo najjednostavniji tajmer i pustimo ga da se aktivira svakih 100 milisekundi.

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

Standardna upotreba

U gornjem primjeru stvorili smo adresu koristeći createObjectURL. Budući da je kod koji trebamo izvršiti relativno jednostavan, ovaj će način biti sažetiji. Kada je kod u zadatku koji moramo izvršiti složeniji, zadatak možemo napisati odvojeno kao neovisnu js datoteku. Za detalje pogledajte sljedeći kod. Postoje detaljniji uvodi, možete se pozvati na referentne materijale na vrhu članka.

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