Middle
Web Workers რა არის და რა მიზნით გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
Web Workers საშუალებას იძლევა resource-კონცენტრირებული ოპერაციების შესრულება ფონურ ნაკადებში, ისე რომ არ ბლოკავდეს JavaScript-ის ძირითადი ნაკადს, რომელიც პასუხისმგებელია მომხმარებლის ინტერფეისის გამოსახულებაზე. ეს ხელს უშლის გვერდის გაყინვას და აუმჯობესებს აპლიკაციის რეაგირების შესაძლებლობას, განსაკუთრებით მონაცემების დიდი მოცულობით, გამოთვლებით ან ქსელური მოთხოვნებით მუშაობისას.
ძირითადი Worker ტიპები:
- დამკვიდრებული Worker: შექმნილია
new Worker('worker.js')-ით. მუშაობს მხოლოდ იმ გვერდთან, რომელმაც შექმნა, და პირდაპირ მართავს ამ გვერდის სკრიპტიდან. - გაერთიანებული Worker: შექმნილია
new SharedWorker('worker.js')-ით. შეიძლება იყოს ხელმისაწვდომი რამდენიმე სკრიპტიდან სხვადასხვა ფანჯრებში ან ტაბებში ერთ წყაროსგან. - სერვის Worker: მუშაობს როგორც პროქსი ბრაუზერისა და ქსელის შორის. გამოიყენება რესურსების ქეშირებისთვის, ავტონომიური მუშაობისთვის და push შეტყობინებების განსახორციელებლად.
კომუნიკაცია ძირითადი ნაკადის და Worker-ის შორის ხდება ასინქრონულად შეტყობინებებით:
postMessage(): მონაცემების გადაცემა ერთ ნაკადიდან მეორეში.onmessageმოვლენის დამუშავებელი: მონაცემების მიღება სხვა ნაკადში.
Web Workers შეზღუდვები:
- პირდაპირი წვდომა DOM-ზე არ აქვთ.
windowდაdocumentობიექტებზე წვდომა არ აქვთ.- ზოგიერთი გლობალური ცვლადის და ფუნქციის წვდომა არ აქვთ ძირითადი ნაკადიდან.
დამკვიდრებული Worker-ის გამოყენების მაგალითი:
// main.js
const worker = new Worker('worker.js');
worker.addEventListener('message', (event) => {
console.log('მესიჯი Worker-დან:', event.data);
});
worker.postMessage('გამარჯობა ძირითადი ნაკადიდან!');
// worker.js
self.addEventListener('message', (event) => {
console.log('მესიჯი ძირითადი ნაკადიდან:', event.data);
self.postMessage('გამარჯობა Worker-დან!');
});