Rumah >hujung hadapan web >Tutorial H5 >Bagaimanakah saya menggunakan API Pekerja Web HTML5 untuk pemprosesan latar belakang?
API Pekerja Web HTML5 membolehkan anda menjalankan kod JavaScript di latar belakang, terpisah dari benang penyemak imbas utama. Ini menghalang menyekat antara muka pengguna (UI) semasa melaksanakan tugas jangka panjang. Inilah cara menggunakannya:
Mewujudkan Pekerja: Anda bermula dengan membuat pekerja baru menggunakan URL skrip. Skrip ini akan mengandungi kod yang ingin anda laksanakan di latar belakang. Ini dilakukan dalam fail JavaScript utama anda:
<code class="javascript">const worker = new Worker('worker.js');</code>
Ini mewujudkan objek Worker
, yang mewakili benang latar belakang. Gantikan 'worker.js'
dengan laluan sebenar ke skrip pekerja anda.
Skrip Pekerja ( worker.js
): Skrip ini mengandungi kod yang akan dilaksanakan di latar belakang. Adalah penting untuk diperhatikan bahawa skrip ini mempunyai skop global sendiri, berasingan dari benang utama. Ia tidak dapat mengakses pembolehubah DOM atau global secara langsung dari benang utama. Inilah contoh mudah:
<code class="javascript">self.onmessage = function(e) { let result = e.data * 2; self.postMessage(result); };</code>
Skrip pekerja ini mendengar mesej ( onmessage
) dari benang utama. Ia menerima data dalam harta e.data
, melakukan pengiraan, dan menghantar hasilnya kembali ke benang utama menggunakan postMessage
. self
merujuk kepada skop global pekerja.
Komunikasi (utas utama): Benang utama boleh menghantar mesej kepada pekerja menggunakan postMessage()
:
<code class="javascript">worker.postMessage(10); // Send the number 10 to the worker</code>
Menerima Mesej (Thread Utama): Thread utama mendengar mesej dari pekerja menggunakan pendengar acara onmessage
:
<code class="javascript">worker.onmessage = function(e) { console.log('Result:', e.data); // Log the result received from the worker };</code>
Menamatkan pekerja: Apabila anda selesai dengan pekerja, anda harus menamatkannya untuk membebaskan sumber:
<code class="javascript">worker.terminate();</code>
Pelaksanaan JavaScript tradisional berjalan pada benang utama, yang bermaksud apa-apa tugas jangka panjang (contohnya, pengiraan kompleks, pemprosesan fail yang besar, permintaan rangkaian) akan menyekat UI, menjadikan halaman web tidak responsif dan mengecewakan bagi pengguna. Pekerja web menawarkan beberapa kelebihan utama:
Tidak, pekerja web tidak dapat mengakses DOM secara langsung. Ini adalah ciri keselamatan penting yang menghalang konflik yang berpotensi dan memastikan kestabilan. Walau bagaimanapun, data boleh ditukar antara benang utama dan pekerja menggunakan kaedah postMessage()
, seperti yang ditunjukkan dalam bahagian pertama.
Kaedah postMessage()
membolehkan anda menghantar data berstruktur (contohnya, nombor, rentetan, tatasusunan, objek) antara benang utama dan pekerja. Kedua -dua benang utama dan pekerja perlu mendengar acara message
untuk menerima dan mengendalikan data. Ingat bahawa hanya data clonable berstruktur boleh diluluskan - ini bermakna data disalin, tidak dikongsi dengan rujukan. Untuk memindahkan dataset yang besar dengan cekap, pertimbangkan untuk menggunakan objek yang boleh dipindahmilik.
Walaupun pekerja web menawarkan kelebihan yang ketara, beberapa perangkap harus dielakkan:
error
dan peristiwa message
dengan betul pada benang utama adalah penting untuk menguruskan kitar semula pekerja dan mengelakkan kebocoran.Atas ialah kandungan terperinci Bagaimanakah saya menggunakan API Pekerja Web HTML5 untuk pemprosesan latar belakang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!