I Web Worker rappresentano un potente strumento che può essere utilizzato in JavaScript per eseguire script in background, senza bloccare l’interfaccia utente e le interazioni con la stessa. I Web Worker girano su un thread separato, permettendo così all’applicazione principale di rimanere reattiva anche se è in corso l’elaborazione di pesanti calcoli o richieste ad un server.
Ecco come puoi utilizzare i Web Worker in JavaScript:
1. Creazione di un Web Worker:
```
var worker = new Worker(‘worker.js’);
```
In questo esempio, il file ‘worker.js’ sarà il file JavaScript che il Web Worker eseguirà. L’URL passato come argomento deve risiedere nello stesso dominio dell’esecuzione del tuo codice JavaScript.
1. Comunicazione con un Web Worker:
Per inviare messaggi al Web Worker, è possibile utilizzare il metodo `postMessage`:
```
worker.postMessage(‘Hello Worker!’);
```
Il Web Worker può rispondere utilizzando l’oggetto ‘self’ e il metodo `postMessage`:
```
//worker.js
self.onmessage = function(event) {
console.log(‘Worker: Messaggio ricevuto: ‘ + event.data);
self.postMessage(‘Saluti dal Worker!’);
};
```
Nel tuo script principale, puoi quindi ascoltare i messaggi provenienti dal Web Worker:
```
worker.onmessage = function(event) {
console.log(‘Messaggio ricevuto dal Worker: ‘ + event.data);
};
```
1. Arresto di un Web Worker:
E’ possibile terminare l’esecuzione di un Web Worker dal thread principale grazie al metodo `terminate`:
```
worker.terminate();
```
Ricorda che una volta terminato un Web Worker, non può essere riavviato o utilizzato nuovamente.