Tutorial ini meneroka pekerja web dan aplikasi mereka dalam menyelesaikan kesesakan prestasi. Kami akan meliputi pelaksanaan penyemak imbas dan pelayan, menonjolkan keupayaan dan batasan mereka.
Konsep Utama:
- sifat tunggal-threaded JavaScript: JavaScript, dalam pelayar dan node.js, secara tradisinya berjalan pada satu benang. Ini mengehadkan pemprosesan selari, berpotensi menyebabkan masalah prestasi dengan tugas jangka panjang.
- Gelung acara: sifat asynchronous JavaScript menggunakan gelung acara untuk mengendalikan operasi I/O tanpa menyekat benang utama. Walau bagaimanapun, tugas terikat CPU masih menghalang pelaksanaan.
- Pekerja Web: Penyelesaian: Pekerja web menyediakan mekanisme untuk menjalankan skrip serentak dalam benang latar belakang, menghalang UI membeku dalam penyemak imbas dan meningkatkan responsif sisi pelayan.
Pekerja web penyemak imbas:
Tutorial menunjukkan aplikasi berasaskan penyemak imbas yang memaparkan jam dan simulator dadu. Contohnya mempamerkan bagaimana pekerja web membolehkan jam terus berjalan walaupun semasa simulasi dadu-rolling intensif sedang berjalan.
- pekerja yang berdedikasi dan dikongsi: Perbezaan antara komunikasi yang berdedikasi (satu sama lain) dan pekerja bersama (pelbagai benang mengakses seorang pekerja tunggal) dijelaskan, mencatatkan sokongan pelayar terhad untuk pekerja bersama.
- Batasan: Pekerja web beroperasi secara berasingan, tidak mempunyai akses langsung ke DOM dan objek global tertentu. Ini adalah langkah keselamatan yang penting untuk mencegah konflik. Mereka paling berkesan untuk tugas-tugas yang terikat CPU, bukan I/O yang terikat.
- Pelaksanaan: Butir -butir tutorial bagaimana untuk membuat dan menggunakan pekerja web, termasuk lulus mesej, pengendalian ralat (,
onmessageerror
), dan penggunaan onerror
untuk mengimport skrip luaran. Kerumitan menggunakan modul ES dengan pekerja juga ditangani. importScripts()
- Pekerja Perkhidmatan: Gambaran keseluruhan pekerja perkhidmatan, fungsi yang berbeza, dan perbezaan mereka dari pekerja web disediakan.
Pekerja web sisi pelayan (node.js):
Tutorial memperluaskan penggunaan pekerja web dalam node.js (versi 10 dan ke atas), mempamerkan contoh dadu yang sama.
- Pelaksanaan: Contohnya menunjukkan cara membuat dan mengurus pekerja dalam node.js, menggunakan
workerData
untuk pemindahan data awal dan parentPort.postMessage()
untuk komunikasi. Pengendali Acara (message
, exit
, error
) digunakan untuk menguruskan kitaran hayat pekerja dan kesilapan.
- Pekerja sebaris: Kemungkinan membenamkan kod utama dan pekerja dalam satu fail dibincangkan.
- Had: Sama seperti pekerja penyemak imbas, pekerja sisi pelayan mempunyai batasan mengenai perkongsian data. Teknik untuk berkongsi data menggunakan
SharedArrayBuffer
diterokai, bersama dengan kaveat mereka.
- Alternatif: Tutorial merangkumi alternatif kepada pekerja web dalam node.js, termasuk:
- Proses Kanak -kanak: Untuk melancarkan proses luaran.
- clustering: untuk membuat pelbagai contoh aplikasi node.js untuk mengendalikan beban yang meningkat.
- Pengurus Proses (mis., PM2): untuk memudahkan pengurusan pelbagai contoh node.js.
- Pengurus kontena (mis., Docker, Kubernetes): untuk menggunakan dan menguruskan aplikasi di pelbagai mesin.
Kesimpulan:
Pekerja web menawarkan pendekatan yang kuat untuk meningkatkan prestasi dengan membolehkan pemprosesan selari. Tutorial ini memberikan panduan yang komprehensif untuk penggunaan, batasan, dan alternatif mereka, memperkasakan pemaju untuk membuat keputusan yang tepat mengenai permohonan teknologi ini. Bahagian Soalan Lazim seterusnya menjelaskan aspek utama pekerja web dan hubungan mereka dengan teknologi web lain. Imej yang menggambarkan seni bina pekerja web kekal dalam kedudukan asalnya.
Atas ialah kandungan terperinci Membangunkan aplikasi JS yang lebih cepat: Panduan Ultimate kepada Pekerja Web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!