Lausn: setInterval getur ekki keyrt venjulega í bakgrunni vafrans.
Tilvísun
WorkerHvað er „Vefstarfsmaður“
„Vefverkamaður“ býður upp á einfaldan hátt fyrir vefefni til að keyra handrit í bakgrunnsþráð. Þræðir geta framkvæmt verkefni án þess að trufla notendaviðmótið. Að auki geta þeir framkvæmt I / O með XMLHttpRequest. Þegar það hefur verið búið til getur starfsmaður sent skilaboð í JavaScript kóðann sem bjó það til, með því að senda skilaboðin til viðburðaraðila sem tilgreindur er með kóðanum (og öfugt).
Leiðbeiningar
Í sýnishornskóðanum hér að neðan útfærum við einfaldasta tímamælinn og látum hann kveikja á 100 millisekúndu fresti.
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");
Venjuleg notkun
Í dæminu hér að ofan bjuggum við til heimilisfang með því að búa til createObjectURL. Þar sem kóðinn sem við þurfum að framkvæma er tiltölulega einfaldur verður þessi aðferð hnitmiðaðri. Þegar kóðinn í verkefninu sem við þurfum að framkvæma er flóknari getum við skrifað verkefnið sérstaklega sem sjálfstæð js skrá. Nánari upplýsingar er að finna í eftirfarandi kóða. Það eru ítarlegri kynningar, þú getur vísað í tilvísunargögn efst í greininni.
var timmer = new Worker('worker.js');