Oplossing: setInterval kan nie normaal op die agtergrond van die blaaier werk nie.
Verwysing
WorkerWat is 'webwerker'
'Webwerker' bied 'n eenvoudige manier waarop webinhoud skrifte in 'n agtergronddraad kan uitvoer. Drade kan take verrig sonder om die gebruikerskoppelvlak te versteur. Daarbenewens kan hulle I / O uitvoer met behulp van XMLHttpRequest. Sodra dit geskep is, kan 'n werker 'n boodskap stuur na die JavaScript-kode wat dit geskep het, deur die boodskap te plaas aan die gebeurtenishanteerder wat deur die kode gespesifiseer word (en andersom).
Instruksies
In die onderstaande voorbeeldkode implementeer ons die eenvoudigste timer en laat dit elke 100 millisekondes aktiveer.
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");
Standaardgebruik
In die voorbeeld hierbo het ons 'n adres geskep met behulp van createObjectURL. Aangesien die kode wat ons moet uitvoer relatief eenvoudig is, sal hierdie metode bondiger wees. Wanneer die kode in die taak wat ons moet uitvoer ingewikkelder is, kan ons die taak afsonderlik as 'n onafhanklike js-lêer skryf. Raadpleeg die volgende kode vir meer inligting. Daar is meer gedetailleerde inleidings; u kan verwys na die verwysingsmateriaal bo-aan die artikel.
var timmer = new Worker('worker.js');