Web Workers is een JavaScript API voor het uitvoeren van scripts op de achtergrond. Het wordt meestal gebruikt voor scripts die veel tijd kosten, zoals grote berekeningen, en waardoor de webpagina niet bevriest of niet meer reageert.
Web Workers werken in afzonderlijke threads van de hoofd browser thread dus elke web worker heeft zijn eigen globale scope, dus de code die erin wordt uitgevoerd, heeft geen toegang tot de DOM of de globale variabelen en functies van de hoofd thread.
Hier is een basisvoorbeeld van hoe u Web Workers kunt gebruiken in JavaScript:
1. Eerst moet u een nieuw Web Worker-bestand maken. Bijvoorbeeld `worker.js`:
```
self.addEventListener(‘message’, function (e) {
var data = e.data;
1. Daarna moet je de Web Worker in je script initialiseren met het pad naar het workerbestand:
```
var myWorker = new Worker(“./worker.js”);
```
1. Vervolgens kunt u berichten over en weer zenden met de `postMessage` functie om data te zenden, en de `onmessage` event handler om data te ontvangen:
```
myWorker.postMessage(“Hello, worker!”);
myWorker.onmessage = function (e) {
console.log(e.data); // Logs: ‘WORKER STARTED: Hello, worker!‘
};
```
1. Je kunt de worker stoppen met de `terminate` functie:
```
myWorker.terminate();
```
Let op, Web Workers kunnen niet interageren met de DOM, ze zijn ontworpen om rekentaken of andere complexe taken op de achtergrond uit te voeren zonder de gebruikersinterface te bevriezen. Ook, omdat workers geen toegang hebben tot het DOM, kunnen ze geen jQuery of andere bibliotheken die afhankelijk zijn van het DOM gebruiken.
Bovendien hebben webworkers geen toegang tot bepaalde JavaScript-objecten zoals het `window`-object of het `document`-object. Ze kunnen echter communiceren met de hoofd thread door asynchrone berichten te sturen.