Datrysiad: ni all setInterval redeg fel rheol yng nghefndir y porwr.
Cyfeirnod
WorkerBeth yw "Gweithiwr Gwe"
Mae "Web Worker" yn darparu ffordd syml i gynnwys gwe redeg sgriptiau mewn edefyn cefndir. Gall edau gyflawni tasgau heb darfu ar y rhyngwyneb defnyddiwr. Yn ogystal, gallant berfformio I / O gan ddefnyddio XMLHttpRequest. Ar ôl ei chreu, gall gweithiwr anfon neges at y cod JavaScript a'i creodd, trwy bostio'r neges at y sawl sy'n trin y digwyddiad a bennir gan y cod (ac i'r gwrthwyneb).
Cyfarwyddiadau
Yn y cod sampl isod, rydym yn gweithredu'r amserydd symlaf ac yn gadael iddo sbarduno pob 100 milieiliad.
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");
Defnydd safonol
Yn yr enghraifft uchod, fe wnaethon ni greu cyfeiriad gan ddefnyddio createObjectURL Gan fod y cod y mae angen i ni ei weithredu yn gymharol syml, bydd y dull hwn yn fwy cryno. Pan fydd y cod yn y dasg y mae angen i ni ei chyflawni yn fwy cymhleth, gallwn ysgrifennu'r dasg ar wahân fel ffeil js annibynnol. Am fanylion, cyfeiriwch at y cod canlynol. Mae yna gyflwyniadau manylach, gallwch gyfeirio at y deunyddiau cyfeirio ar frig yr erthygl.
var timmer = new Worker('worker.js');