Шешім: setInterval браузердің фонында қалыпты жұмыс істей алмайды.
Анықтама
Worker«Web Worker» дегеніміз не
«Web Worker» веб-мазмұнға сценарийлерді фондық ағынмен іске асырудың қарапайым әдісін ұсынады. Ағындар қолданушы интерфейсін бұзбай тапсырмаларды орындай алады. Сонымен қатар, олар XMLHttpRequest көмегімен енгізу-шығаруды орындай алады. Құрғаннан кейін жұмысшы хабарламаны кодта көрсетілген оқиға өңдеушісіне орналастыру арқылы оны жасаған JavaScript кодына жібере алады (және керісінше).
Нұсқаулық
Төмендегі үлгі кодында біз ең қарапайым таймерді қолданамыз және оны 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");
Стандартты қолдану
Жоғарыда келтірілген мысалда біз createObjectURL көмегімен мекен-жай жасадық, біз орындау керек код салыстырмалы түрде қарапайым болғандықтан, бұл әдіс неғұрлым қысқа болады. Тапсырманың коды бізге қажет болғанда, біз тәуелсіз js файлы ретінде бөлек тапсырма жаза аламыз. Толық ақпарат алу үшін келесі кодты қараңыз. Неғұрлым егжей-тегжейлі кіріспелер бар, мақаланың жоғарғы жағындағы анықтамалық материалдарға сілтеме жасай аласыз.
var timmer = new Worker('worker.js');