Rumah  >  Artikel  >  hujung hadapan web  >  Bolehkah Pekerja Web Dilaksanakan Tanpa Fail JavaScript Berasingan?

Bolehkah Pekerja Web Dilaksanakan Tanpa Fail JavaScript Berasingan?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 09:25:29504semak imbas

  Can Web Workers Be Implemented Without Separate JavaScript Files?

Bolehkah Pekerja Web Digunakan Tanpa Fail JavaScript Berasingan?

Pendekatan lalai untuk mencipta pekerja web melibatkan menulis mereka dalam fail JavaScript yang berasingan dan memanggil mereka seperti berikut:

<code class="js">new Worker('longrunning.js')</code>

Walau bagaimanapun, bagi mereka yang menggunakan Pengkompil Penutupan dan lebih suka mengelak daripada mengedarkan pekerja dalam fail yang berbeza, terdapat penyelesaian alternatif:

Pekerja Sebaris dengan BLOB

HTTP5Rocks menyediakan kaedah inovatif untuk pekerja dalam talian sebaris menggunakan fungsi Blob(). Teknik ini membolehkan anda menjana skrip pekerja anda secara dinamik atau membuat halaman serba lengkap tanpa memerlukan fail pekerja luaran.

<code class="js">var blob = new Blob([
  document.querySelector('#worker1').textContent
], { type: "text/javascript" });

var worker = new Worker(window.URL.createObjectURL(blob));</code>

Dalam contoh ini, sifat textContent bagi elemen skrip HTML dengan id="worker1 " diambil dan digunakan untuk membina objek Blob dengan jenis MIME yang sesuai. Pekerja baharu kemudian dibuat dengan URL yang dibuat menggunakan kaedah createObjectURL() Blob. URL ini unik untuk Blob dan membenarkan pekerja dimuatkan dan dilaksanakan tanpa fail JavaScript yang berasingan.

Atas ialah kandungan terperinci Bolehkah Pekerja Web Dilaksanakan Tanpa Fail JavaScript Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn