Çözüm: setInterval, tarayıcının arka planında normal şekilde çalışamaz.

Referans

Worker

"Web Çalışanı" nedir

"Web Çalışanı", web içeriğinin komut dosyalarını arka planda çalıştırması için basit bir yol sağlar. İş parçacığı, kullanıcı arayüzünü rahatsız etmeden görevleri gerçekleştirebilir. Ek olarak, XMLHttpRequest kullanarak G / Ç gerçekleştirebilirler. Çalışan, oluşturulduktan sonra, mesajı kod tarafından belirtilen olay işleyicisine göndererek (ve tersi), kendisini oluşturan JavaScript koduna bir mesaj gönderebilir.

Talimatlar

Aşağıdaki örnek kodda, en basit zamanlayıcıyı uyguluyoruz ve her 100 milisaniyede bir tetiklenmesine izin veriyoruz.

            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 kullanım

Yukarıdaki örnekte createObjectURL kullanarak bir adres oluşturduk.Çalıştırmamız gereken kod nispeten basit olduğu için bu yöntem daha kısa olacaktır. Çalıştırmamız gereken görevdeki kod daha karmaşık olduğunda, görevi bağımsız bir js dosyası olarak ayrı ayrı yazabiliriz. Ayrıntılar için lütfen aşağıdaki koda bakın. Daha ayrıntılı tanıtımlar var, makalenin üst kısmındaki referans malzemelere bakabilirsiniz.

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