Lahendus: setInterval ei saa brauseri taustal normaalselt töötada.
Viide
WorkerMis on "veebitöötaja"
"Veebitöötaja" pakub veebisisule lihtsat viisi skriptide käitamiseks taustalõimes. Lõngad saavad ülesandeid täita kasutajaliidest häirimata. Lisaks saavad nad I / O-d läbi viia, kasutades XMLHttpRequest. Pärast loomist saab töötaja saata sõnumi selle loonud JavaScripti koodile, postitades sõnumi koodi määratud sündmuste käitlejale (ja vastupidi).
Juhised
Allolevas näidiskoodis rakendame lihtsaima taimeri ja laseme sellel käivituda iga 100 millisekundi järel.
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");
Tavakasutus
Ülaltoodud näites lõime aadressi, kasutades faili createObjectURL. Kuna käivitamiseks vajalik kood on suhteliselt lihtne, on see meetod ülevaatlikum. Kui täidetava ülesande kood on keerulisem, võime ülesande eraldi kirjutada iseseisva js-failina. Lisateavet leiate järgmisest koodist. Seal on üksikasjalikumaid sissejuhatusi, saate viidata artikli ülaosas olevatele viitematerjalidele.
var timmer = new Worker('worker.js');