Middle
Kas ir Web Workers un kam tie ir nepieciešami?
sobes.tech AI
Atbilde no AI
Web Workers ļauj veikt resursu intensīvas operācijas fonu pavedienos, neapturot galveno JavaScript izpildes pavedienu, kas ir atbildīgs par lietotāja saskarnes zīmēšanu. Tas novērš lapas aizsērēšanu un uzlabo lietojumprogrammas atsaucību, īpaši strādājot ar lieliem datu apjomiem, aprēķiniem vai tīkla pieprasījumiem.
Galvenie Worker tipi:
- Dedicated Worker: Izveido ar
new Worker('worker.js'). Darbojas tikai ar to pašu lapu un ir tieši pārvaldāms no šīs lapas skripta. - Shared Worker: Izveido ar
new SharedWorker('worker.js'). Var būt pieejams vairākiem skriptiem no dažādām logu vai cilņu vienas avota vietas. - Service Worker: Darbojas kā starpnieks starp pārlūkprogrammu un tīklu. Izmanto resursu kešatmiņai, autonomai darbībai un paziņojumu sūtīšanai.
Saziņa starp galveno pavedienu un Worker notiek asinhroni, izmantojot ziņas:
postMessage(): datu sūtīšanai no viena pavediena uz otru.onmessagenotikuma apstrādātājs: datu saņemšanai citā pavedienā.
Web Workers ierobežojumi:
- Tieši nav piekļuves DOM.
- Nav piekļuves
windowundocumentobjektiem. - Nav piekļuves dažiem galvenā pavediena globālajiem mainīgajiem un funkcijām.
Dedicated Worker piemērs:
// main.js
const worker = new Worker('worker.js');
worker.addEventListener('message', (event) => {
console.log('Saņemta ziņa no Worker:', event.data);
});
worker.postMessage('Sveiki no galvenā pavediena!');
// worker.js
self.addEventListener('message', (event) => {
console.log('Saņemta ziņa no galvenā pavediena:', event.data);
self.postMessage('Sveiki no Worker!');
});