Middle
Web Workers деген эмне жана алар эмне үчүн керек?
sobes.tech AI
AIден жооп
Web Workers ресурстарды көп талап кылган операцияларды фондук агымдарда аткарууга мүмкүндүк берет, 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ден салам!');
});