Լուծում. 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');