Чишелеш: setInterval браузер фонында гадәттә эшли алмый.
Сылтама
WorkerНәрсә ул "Веб-эшче"
"Веб-эшче" веб-эчтәлек өчен сценарийларны фон җепләрендә эшләүнең гади ысулын тәкъдим итә. Темалар кулланучы интерфейсын бозмыйча биремнәр башкара ала. Моннан тыш, алар XMLHttpRequest ярдәмендә I / O башкара алалар. Ясалганнан соң, эшче 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");
Стандарт куллану
Aboveгарыдагы мисалда без createObjectURL ярдәмендә адрес ясадык, без башкарырга тиеш код чагыштырмача гади булганлыктан, бу ысул тагын да кыска булыр. Без башкарырга тиеш булган эштәге код катлаулырак булганда, без бәйсез js файл буларак аерым яза алабыз. Детальләр өчен зинһар, түбәндәге кодка мөрәҗәгать итегез. Төгәлрәк кереш сүзләр бар, сез мәкаләнең башындагы белешмә материалларга мөрәҗәгать итә аласыз.
var timmer = new Worker('worker.js');