Zgjidhja: setInterval nuk mund të ekzekutohet normalisht në sfondin e shfletuesit.
Referenca
WorkerÇfarë është "Punëtori në internet"
"Punëtori i uebit" siguron një mënyrë të thjeshtë për përmbajtjen në internet për të ekzekutuar skriptet në një fije sfondi. Threads mund të kryejnë detyra pa prishur ndërfaqen e përdoruesit. Për më tepër, ata mund të kryejnë I / O duke përdorur XMLHttpRequest. Pasi të krijohet, një punëtor mund të dërgojë një mesazh në kodin JavaScript që e krijoi atë, duke postuar mesazhin te mbajtësi i ngjarjes i specifikuar nga kodi (dhe anasjelltas).
Udhëzimet
Në shembullin e kodit më poshtë, ne zbatojmë kohëmatësin më të thjeshtë dhe e lëmë të shkaktojë çdo 100 milisekonda.
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");
Përdorimi standard
Në shembullin e mësipërm, ne krijuam një adresë duke përdorur createObjectURL. Meqenëse kodi që duhet të ekzekutojmë është relativisht i thjeshtë, kjo metodë do të jetë më koncize. Kur kodi në detyrën që duhet të ekzekutojmë është më i ndërlikuar, ne mund ta shkruajmë detyrën veçmas si një skedar i pavarur js. Për detaje, ju lutemi referojuni kodit vijues. Ka prezantime më të hollësishme, ju mund t'i referoheni materialeve të referencës në krye të artikullit.
var timmer = new Worker('worker.js');