Middle
Šta su Web Workers i čemu služe?
sobes.tech АИ
Одговор од АИ
Web Workers omogućavaju izvršavanje operacija koje zahtevaju mnogo resursa u pozadinskim nitima, bez blokiranja glavne nitne izvršavanja JavaScript-a, koja je odgovorna za renderovanje korisničkog interfejsa. Ovo sprečava zamrzavanje stranice i poboljšava odzivnost aplikacije, posebno pri radu sa velikim količinama podataka, računanjima ili mrežnim zahtevima.
Glavne vrste Worker:
- Dedicated Worker: Kreira se pomoću
new Worker('worker.js'). Radi samo sa stranicom koja ga je kreirala i direktno se upravlja iz skripte te stranice. - Shared Worker: Kreira se pomoću
new SharedWorker('worker.js'). Može biti dostupan iz više skripti u različitim prozorima ili karticama istog izvora. - Service Worker: Funkcioniše kao proxy između pretraživača i mreže. Koristi se za keširanje resursa, autonomni rad i implementaciju push obaveštenja.
Komunikacija između glavne niti i Worker-a odvija se asinhrono putem poruka:
postMessage(): za slanje podataka iz jedne niti u drugu.- Handler događaja
onmessage: za primanje podataka u drugoj niti.
Ograničenja Web Workers:
- Nemaju direktan pristup DOM-u.
- Nemaju pristup objektima
windowidocument. - Nemaju pristup nekim globalnim promenljivima i funkcijama glavne niti.
Primer korišćenja Dedicated Worker:
// main.js
const worker = new Worker('worker.js');
worker.addEventListener('message', (event) => {
console.log('Poruka od Workera:', event.data);
});
worker.postMessage('Zdravo iz glavne niti!');
// worker.js
self.addEventListener('message', (event) => {
console.log('Poruka iz glavne niti:', event.data);
self.postMessage('Zdravo od Workera!');
});