0Pricing
HTML Academy · Pelajaran

Pendaftaran Service Worker dari HTML

Daftarkan service worker dengan tag skrip dan API navigator.

Pendaftaran Service Worker dari HTML adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Apa Itu Pekerja Layanan

Pekerja layanan adalah berkas JavaScript yang berjalan di latar belakang, terpisah dari halaman mana pun, dan mencegat permintaan jaringan dalam cakupannya. Pekerja ini menyediakan dukungan luring, notifikasi dorong, sinkronisasi latar belakang, serta pemuatan ulang yang lebih cepat melalui penyimpanan sementara.

Pendaftaran

Daftarkan pekerja dari skrip halaman: navigator.serviceWorker.register("/sw.js"). Peramban mengambil /sw.js, menguraikannya, menjalankan peristiwa pemasangannya, lalu mulai mencegat permintaan dalam cakupan pendaftaran.

if ("serviceWorker" in navigator) {
  navigator.serviceWorker.register("/sw.js")
    .then((reg) => console.log("Registered, scope:", reg.scope))
    .catch((err) => console.error("Registration failed:", err));
}

Deteksi Fitur Terlebih Dahulu

Peramban lama tidak mendukung pekerja layanan. Selalu deteksi fitur dengan "serviceWorker" in navigator sebelum memanggil register; jika tidak, panggilan tersebut menimbulkan kesalahan pada peramban yang tidak memiliki API itu. Penyediaan polifil tidak memungkinkan — pekerja layanan tidak dapat disediakan melalui polifil karena memerlukan integrasi tingkat peramban.

Cakupan

Cakupan adalah awalan jalur yang dikendalikan pekerja. Secara bawaan, cakupan adalah direktori berkas pekerja: /sw.js mengendalikan semua URL di bawah /. Untuk mendaftarkan pekerja dengan cakupan yang lebih dalam dari lokasi berkas yang berbeda, tetapkan opsi cakupan AND sajikan tajuk Service-Worker-Allowed.

Tempat Menempatkan sw.js

Tempatkan sw.js di akar aplikasi (/sw.js) agar cakupan bawaannya mencakup seluruh situs. Jalur yang lebih dalam (/app/sw.js) membatasi cakupan ke /app/ dan turunannya, yang jarang Anda inginkan.

Waktu Pendaftaran

Daftarkan pekerja setelah halaman dimuat agar tidak berebut lebar pita selama proses tampilan penting: window.addEventListener("load", () => navigator.serviceWorker.register("/sw.js")). Fitur PWA mulai berfungsi pada kunjungan berikutnya tanpa menunda kunjungan pertama.

Pembaruan

Peramban memeriksa sw.js yang diperbarui secara otomatis (biasanya setiap 24 jam dan pada sebagian besar pemuatan halaman). Jika isi berkas berubah, pekerja baru diunduh, dipasang, dan menunggu dalam keadaan "menunggu" sampai semua tab yang ada ditutup — setelah itu pekerja diaktifkan.

Memaksa Pembaruan

registration.update() memicu pemeriksaan pembaruan secara manual. self.skipWaiting() di dalam sw.js yang baru akan segera mengaktifkannya tanpa menunggu tab ditutup. Gabungkan keduanya untuk perilaku "selalu jalankan pekerja terbaru", dengan konsekuensi pengambilan ulang data di tengah sesi.

Membatalkan Pendaftaran

registration.unregister() menghapus pekerja. Ini berguna selama pengembangan jika pekerja yang bermasalah merusak situs Anda. Di Chrome DevTools, Aplikasi → Pekerja Layanan menyediakan tombol "Batalkan pendaftaran" untuk tujuan yang sama selama proses debug.

Kesalahan Umum

Mendaftarkan pekerja melalui HTTP (tanpa HTTPS) gagal secara diam-diam — pekerja layanan memerlukan asal yang aman (HTTPS, atau localhost untuk pengembangan). Periksa konsol untuk pesan "Terjadi kesalahan sertifikat SSL" jika pendaftaran tidak berlaku.

Mengoordinasikan Pekerja dan Halaman

Pekerja tidak memiliki akses DOM. Untuk mengirim pesan, gunakan navigator.serviceWorker.controller.postMessage() dari halaman dan self.addEventListener("message", handler) di pekerja (dan sebaliknya). Ini berguna untuk pembatalan cache, pemeriksaan versi, dan peristiwa khusus.

Kunjungan Pertama vs Kunjungan Berulang

Pada kunjungan pertama, pekerja dipasang dan mulai mengendalikan halaman hanya setelah halaman dimuat ulang. Untuk segera mengendalikan navigasi pertama, panggil self.clients.claim() dalam peristiwa aktivasi — ini berguna untuk aplikasi yang mengutamakan luring.

Pemeriksaan Pengetahuan

Mengapa pekerja layanan harus disajikan melalui HTTPS (atau localhost)?

Ringkasan

Daftarkan pekerja layanan dari JS halaman dengan navigator.serviceWorker.register("/sw.js") setelah deteksi fitur. Tempatkan sw.js di akar aplikasi untuk mendapatkan cakupan penuh. Lakukan pendaftaran saat halaman dimuat agar tidak berebut sumber daya dengan proses tampilan penting. Pembaruan diperiksa secara otomatis dan berkala; paksa dengan registration.update atau skipWaiting. HTTPS diperlukan untuk mencegah injeksi pekerja berbahaya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pendaftaran Service Worker dari HTML” gratis?

Ya — teks lengkap “Pendaftaran Service Worker dari HTML” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pendaftaran Service Worker dari HTML”?

Daftarkan service worker dengan tag skrip dan API navigator. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Pendaftaran Service Worker dari HTML” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Manifest Aplikasi Web
  2. Pendaftaran Service Worker dari HTML
  3. Warna Tema dan Ikon Aplikasi
  4. Halaman Fallback Luring
← Kembali ke HTML Academy