Suluhisho: setInterval haiwezi kukimbia kawaida nyuma ya kivinjari.

Rejea

Worker

Mfanyikazi wa Mtandao ni nini

"Mfanyakazi wa Wavuti" hutoa njia rahisi ya yaliyomo kwenye wavuti kutekeleza hati katika uzi wa nyuma. Threads zinaweza kufanya kazi bila kuvuruga kiolesura cha mtumiaji. Kwa kuongeza, wanaweza kufanya I / O kutumia XMLHttpRequest. Mara baada ya kuundwa, mfanyakazi anaweza kutuma ujumbe kwa msimbo wa JavaScript uliouunda, kwa kutuma ujumbe kwa mshughulikiaji wa hafla uliowekwa na nambari hiyo (na kinyume chake).

Maagizo

Katika nambari ya sampuli hapa chini, tunatumia kipima wakati rahisi na turuhusu ichochea kila milliseconds 100.

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

Matumizi ya kawaida

Katika mfano hapo juu, tuliunda anwani kwa kutumia kuundaObjectURL.Kwa kuwa nambari tunayohitaji kutekeleza ni rahisi, njia hii itakuwa fupi zaidi. Wakati nambari katika jukumu tunalohitaji kutekeleza ni ngumu zaidi, tunaweza kuandika kazi hiyo kando kama faili huru ya js. Kwa maelezo, tafadhali rejea nambari ifuatayo. Kuna utangulizi wa kina zaidi, unaweza kutaja vifaa vya kumbukumbu juu ya kifungu.

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