Լուծում. SetInterval- ը չի կարող նորմալ աշխատել զննարկչի ֆոնին:
Տեղեկանք
WorkerԻ՞նչ է «Վեբ աշխատող»
«Վեբ աշխատող» -ը վեբ բովանդակության համար սցենարներ ֆոնային շղթայում աշխատելու պարզ միջոց է տրամադրում: Թելերը կարող են կատարել առաջադրանքներ ՝ առանց խափանելու օգտագործողի միջերեսը: Բացի այդ, նրանք կարող են կատարել I / O ՝ օգտագործելով 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');