Løsning: setInterval kan ikke kjøres normalt i bakgrunnen til nettleseren.

Referanse

Worker

Hva er "Web Worker"

"Web Worker" gir en enkel måte for nettinnhold å kjøre skript i en bakgrunnstråd. Tråder kan utføre oppgaver uten å forstyrre brukergrensesnittet. I tillegg kan de utføre I / O ved hjelp av XMLHttpRequest. Når den er opprettet, kan en arbeider sende en melding til JavaScript-koden som opprettet den, ved å sende meldingen til hendelsesbehandleren spesifisert av koden (og omvendt).

Bruksanvisning

I eksempelkoden nedenfor implementerer vi den enkleste tidtakeren og lar den utløse hver 100 millisekund.

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

Standard bruk

I eksemplet ovenfor opprettet vi en adresse ved hjelp av createObjectURL. Siden koden vi trenger å utføre er relativt enkel, vil denne metoden være mer kortfattet. Når koden i oppgaven vi trenger å utføre er mer komplisert, kan vi skrive oppgaven separat som en uavhengig js-fil. For detaljer, se følgende kode. Det er mer detaljerte introduksjoner, du kan referere til referansematerialet øverst i artikkelen.

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