Datrysiad: ni all setInterval redeg fel rheol yng nghefndir y porwr.

Cyfeirnod

Worker

Beth 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');