Middle
Веб коргарон чӣ ҳастанд ва барои чӣ лозиманд?
sobes.tech AI
Ҷавоб аз AI
Web ишчилəri — браузердің негізгі UI ағысынан бөлек, фон ағысында JavaScript кодын іске қосу тәсілі.
Мақсаты:
- Ресурс талап ететін есептеулерді негізгі ағынды бөгемей орындау, бұл интерфейстің қатып қалуын болдырмайды.
- Үлкен деректерді өңдеу немесе ұзақ уақыт алатын операцияларды (мысалы, парсинг, сығу, кей жағдайларда желілік сұраулар) фондық режимде орындау.
- Веб-қосымшалардың өнімділігін және жауап беруін жақсарту.
Веб ишкерлерінің түрлері:
- Dedicated Worker: Оны жасаған скриптпен байланысты.
- Shared Worker: Бір домендегі бірнеше терезе немесе қойындылар арасында бөлісуге болады.
- Service Worker: Желілік сұрауларды ұстап алады, кэшті басқарады, офлайн қол жетімділікті қамтамасыз етеді, push хабарламаларын қолдайды.
Dedicated Worker құру және пайдалану мысалы:
// main.js (негізгі ағын)
const worker = new Worker('worker.js');
// Worker-ге хабарлама жіберу
worker.postMessage('Жеңіл есептеулерді бастау');
// Worker-ден хабарлама алу
worker.onmessage = function(event) {
console.log('Worker-ден алынған:', event.data);
};
// worker.js (worker коды)
self.onmessage = function(event) {
console.log('Worker-ге келген:', event.data);
// Қиын есептеулерді имитациялау
let result = 0;
for (let i = 0; i < 1000000000; i++) {
result += i;
}
// Негізгі ағынға хабарлама қайтару
self.postMessage('Есептеулер аяқталды, нәтиже: ' + result);
};
Шектеулер:
- DOM-ға тікелей қол жеткізу жоқ.
- Кейбір негізгі ағынның глобальды айнымалыларын (мысалы,
window,document) пайдалана алмайды. - Байланыс асинхрон хабар алмасу арқылы жүзеге асады (
postMessageжәнеonmessage/addEventListener('message')). - Деректер ағындар арасында көшірілу арқылы беріледі (structured clone алгоритмі), бірақ үлкен деректер үшін
Transferable Objectsқолдануға болады, ол сілтеме бойынша беру (бастапқы ағында қол жетімділікті жоғалту).