Чечим: setInterval браузердин фондо кадимкидей иштей албайт.

Маалымдама

Worker

"Веб жумушчу" деген эмне?

"Веб 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");
        

Стандарттык колдонуу

Жогорудагы мисалда биз CreateObjectURL колдонуп дарек түздүк.Биздин аткаруубуз керек болгон код салыштырмалуу жөнөкөй болгондуктан, бул ыкма кыскача болот. Биз аткарышыбыз керек болгон тапшырмадагы код татаалдашканда, биз өз алдынча js файлы катары тапшырманы өзүнчө жаза алабыз. Чоо-жайын билүү үчүн төмөнкү кодду караңыз. Толугураак тааныштыруулар бар, макаланын жогору жагындагы шилтеме материалдарына шилтеме берсеңиз болот.

            var timmer = new Worker('worker.js');