Rumah > hujung hadapan web > tutorial js > Pekerja Web Vs Pekerja Perkhidmatan

Pekerja Web Vs Pekerja Perkhidmatan

WBOY
Lepaskan: 2024-09-01 21:08:21
asal
436 orang telah melayarinya

pengenalan

Apabila saya mula-mula mendengar tentang istilah ini, saya fikir, okey mereka melakukan perkara yang sama dengan urutan berasingan mereka. Kemudian Mengapa kita memerlukan 2 istilah ini?

Tetapi sebenarnya terdapat perbezaan besar antara 2 istilah ini dan cara mereka berkelakuan.

Akan cuba terangkan secara terperinci.

Persamaan antara 2 ini ialah

  1. Mereka berjalan dalam urutan berasingan, tanpa menyekat utas tunggal utama Javascript.

Pekerja Web

  • Di sini benang pekerja boleh melaksanakan tugas tanpa mengganggu urutan utama.
  • Ini digunakan untuk tugasan yang memerlukan sejumlah besar CPU, seperti manipulasi/pemprosesan imej, pengiraan berat dan pemprosesan data .
  • Ia tidak mempunyai keupayaan untuk mengakses DOM dan ia tidak boleh memintas permintaan rangkaian.
  • Ia tidak mempunyai kitaran hayat

Pekerja Perkhidmatan

  • Ia adalah sejenis pekerja web dengan keupayaan tambahan.
  • Ia boleh dijalankan berasingan daripada Pelayar / walaupun semasa Pelayar ditutup.
  • Ia adalah komponen teras PWA, Kerana ia digunakan untuk mendayakan ciri seperti sokongan luar talian, penyegerakan latar belakang dan pemberitahuan tolak.
  • Ia bertindak seperti pelayan proksi yang terletak di antara penyemak imbas dan rangkaian.

Kitaran Hidup Pekerja Perkhidmatan

1. Pendaftaran

  • Di sini kami akan memberitahu pelayar di mana fail javascript pekerja perkhidmatan kami wujud.
if ('serviceWorker' in navigator) {
// wrap it in try/catch / promisses
   await navigator.serviceWorker.register('/service-worker.js')
}

Salin selepas log masuk

2. Pemasangan

  • Apabila penyemak imbas menganggap pekerja perkhidmatan itu baharu, acara pemasangan dicetuskan.

kod di bawah yang perlu kita tulis dalam service-worker.js

self.addEventListener('install', (event) => {
// do your operations
})
Salin selepas log masuk

3. Pengaktifan

  • Selepas pemasangan ia akan melompat ke sini
 self.addEventListener('activate', (event) => {
// Do your Operation
})
Salin selepas log masuk

4. Terbiar

  • Apabila pekerja perkhidmatan tidak melakukan apa-apa, ia berada dalam keadaan terbiar.

5. ambil/Mesej

  • Setiap kali permintaan / mesej rangkaian dibuat, pekerja perkhidmatan bangun dan mengawal
  self.addEventListener('fetch', (event) => {
  // Do your Opeation
})
Salin selepas log masuk

6. Penamatan

  • Jika tidak digunakan, penyemak imbas akan menamatkan perkhidmatan pekerja untuk menyimpan memori. Tetapi apabila kita tidak tahu.

Ia akan mengekalkan pekerja perkhidmatan untuk masa yang sangat lama.

Contoh:-

dalam chrome Buka pautan ini di sana anda akan melihat banyak pekerja perkhidmatan tergantung, dan anda boleh melakukan banyak perkara seperti, Memeriksa/memulakan dan menghantar mesej.

chrome://serviceworker-internals/
Salin selepas log masuk

Web Worker Vs Service Worker

Bagaimana kita boleh pekerja Wake Up Service walaupun Penyemak Imbas ditutup.

Nota:-
Untuk khusus ini kita boleh menggunakan push untuk bangun, tetapi untuk penggunaan ini mesti memberikan kebenaran Pemberitahuan kepada Penyemak Imbas, jika tidak, tiada cara.

Cara lain adalah relevan apabila penyemak imbas masih terbuka

1. ambil Acara

  • Acara ini dipecat setiap kali permintaan pengambilan dibuat.
  self.addEventListener('fetch', event => {
  // Handle fetch event
});
Salin selepas log masuk

2. Mesej

  • Acara ini dicetuskan apabila mesej diterima daripada skrip lain. (Pekerja Perkhidmatan berlaku komunikasi + Fail Javascript lain)
   self.addEventListener('message', (event) => {
// Handle message Event
})
Salin selepas log masuk

3. Tolak

  • Acara ini dicetuskan apabila mesej tolak diterima
  self.addEventListener('push', (event) => {
// Handle Push Event
})
Salin selepas log masuk

4. Segerakkan Acara

  • Acara ini dicetuskan apabila acara Penyegerakan latar belakang diterima.
  self.addEventListener('sync', (event) => {
// handle background Sync Event
})
Salin selepas log masuk

Rujukan

  1. https://frontendmasters.com/courses/background-javascript

Atas ialah kandungan terperinci Pekerja Web Vs Pekerja Perkhidmatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan