Həll: setInterval brauzerin arxa planında normal işləyə bilməz.
İstinad
Worker"Veb işçisi" nədir
"Veb işçisi" veb məzmununun arxa plandakı skriptləri idarə etməsinin sadə bir yolunu təqdim edir. Mövzular istifadəçi interfeysini pozmadan tapşırıqları yerinə yetirə bilər. Bundan əlavə, XMLHttpRequest istifadə edərək I / O edə bilərlər. Yaradıldıqdan sonra işçi mesajı kodla göstərilən hadisə işləyicisinə göndərərək (və əksinə) onu yaratmış JavaScript koduna bir mesaj göndərə bilər.
Təlimat
Aşağıdakı nümunə kodunda, ən sadə zamanlayıcıyı tətbiq edirik və hər 100 milisaniyədə bir tetiklemesine icazə veririk.
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");
Standart istifadə
Yuxarıdakı nümunədə createObjectURL istifadə edərək bir ünvan yaratdıq.İdrak etməyimiz lazım olan kod nisbətən sadə olduğundan bu metod daha yığcam olacaq. İcra etməli olduğumuz tapşırıqdakı kod daha mürəkkəb olduqda, işi müstəqil bir js faylı olaraq ayrıca yaza bilərik. Ətraflı məlumat üçün aşağıdakı kodu nəzərdən keçirin. Daha ətraflı təqdimatlar var, məqalənin yuxarı hissəsindəki istinad materiallarına müraciət edə bilərsiniz.
var timmer = new Worker('worker.js');