Løsning: setInterval kan ikke kjøres normalt i bakgrunnen til nettleseren.
Referanse
WorkerHva 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');