Solvo: setInterval ne povas funkcii normale en la fono de la retumilo.

Referenco

Worker

Kio estas "Reta Laboristo"

"Reta Laboristo" provizas simplan manieron por interreta enhavo ruli skriptojn en fona fadeno. Fadenoj povas plenumi taskojn sen ĝeni la interfacon de uzanto. Krome ili povas plenumi I / O per XMLHttpRequest. Unufoje kreita, laboristo povas sendi mesaĝon al la kodo Ĝavoskripto, kiu kreis ĝin, sendante la mesaĝon al la evento-prizorganto specifita de la kodo (kaj inverse).

Instrukcioj

En la suba ekzempla kodo, ni efektivigas la plej simplan tempigilon kaj lasas ĝin ekfunkciigi ĉiujn 100 milisekundojn.

            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");
        

Norma uzado

En la supra ekzemplo, ni kreis adreson per createObjectURL. Ĉar la kodo, kiun ni devas ekzekuti, estas relative simpla, ĉi tiu metodo estos pli konciza. Kiam la kodo en la tasko, kiun ni devas plenumi, estas pli komplika, ni povas skribi la taskon aparte kiel sendependa js-dosiero. Por detaloj, bonvolu raporti al la sekva kodo. Estas pli detalaj enkondukoj, vi povas aludi al la referencaj materialoj ĉe la supro de la artikolo.

            var timmer = new Worker('worker.js');