Sobes.tech
Middle

Веб коргарон чӣ ҳастанд ва барои чӣ лозиманд?

sobes.tech AI

Ҷавоб аз AI

Web ишчилəri — браузердің негізгі UI ағысынан бөлек, фон ағысында JavaScript кодын іске қосу тәсілі.

Мақсаты:

  • Ресурс талап ететін есептеулерді негізгі ағынды бөгемей орындау, бұл интерфейстің қатып қалуын болдырмайды.
  • Үлкен деректерді өңдеу немесе ұзақ уақыт алатын операцияларды (мысалы, парсинг, сығу, кей жағдайларда желілік сұраулар) фондық режимде орындау.
  • Веб-қосымшалардың өнімділігін және жауап беруін жақсарту.

Веб ишкерлерінің түрлері:

  1. Dedicated Worker: Оны жасаған скриптпен байланысты.
  2. Shared Worker: Бір домендегі бірнеше терезе немесе қойындылар арасында бөлісуге болады.
  3. 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 қолдануға болады, ол сілтеме бойынша беру (бастапқы ағында қол жетімділікті жоғалту).