Cara kerja dari service worker adalah sebagai berikut:
Event pada Service Worker
Event adalah suatu kondisi yang ditangkap oleh Service Worker dan kemudian melakukan respon sesuai event tersebut.
Berikut adalah beberapa event yang dapat dideteksi oleh Service Worker.
- Ketika ada request dari html aplikasi, misalnya permintaan icon file, maka service worker akan menangkap request tersebut dan memeriksa local cache untuk file yang diminta.
- Jika ketemu, maka service worker akan mengembalikan file tersebut kepada aplikasi.
- Jika tidak ada, service worker akan mengontak server untuk meneruskan permintaan file dan kemudian jika berhasil di download, akan disimpan ke local cache untuk penggunaan berikutnya.
Event adalah suatu kondisi yang ditangkap oleh Service Worker dan kemudian melakukan respon sesuai event tersebut.
Berikut adalah beberapa event yang dapat dideteksi oleh Service Worker.
Siklus Hidup Service Worker
Service worker memiliki beberapa state yang menunjukkan daur hidupnya.
Service worker memiliki beberapa state yang menunjukkan daur hidupnya.
Menambahkan Service Worker
Menambahkan Incoming Event pada Service Worker
Menambahkan Incoming Event pada Service Worker
Mengupdate Service Worker
Mengupdate Service Worker
- Seperti yang dijelaskan pada bagian sebelumnya, service worker adalah sebuah file JavaScript.
- Service Worker memiliki ruang lingkup di mana file html dan JavaScript di dalam ruang lingkup tersebut mendapat pengaruh atau dapat dilayani oleh Service Worker.
- Karena itu, agar Service Worker dapat melayani semua file di dalam proyek kita, maka buat service worker di dalam folder public.
- Sehingga struktur folder akan berubah menjadi seperti pada gambar berikut:
- Selanjutnya adalah melakukan registrasi file sw.js
- Untuk melakukan registrasi sw.js, dapat dilakukan dengan membuat sebuah file javascript yang kemudian dapat ditambahkan ke dalam semua file html di dalam proyek kita.
- Untuk itu, buat file JavaScript baru di dalam folder src/js dengan nama file app.js
- File app.js ini akan digunakan untuk melakukan registrasi Service Worker.
- Lalu isikan kode berikut ke dalam app.js
- Selanjutnya, refresh kembali dan perhatikan bagian Console pada Developer Tool dari aplikasi browser yang digunakan.
- Akan terlihat pesan seperti pada gambar berikut.
Menambahkan Incoming Event pada Service Worker
- Untuk menambahkan event, modifikasi dapat dilakukan pada file sw.js
- Setelah disimpan, lalu refresh kembali halaman website yang dibuka pada browser.
- Bila event berhasil, akan tampilan console akan menjadi seperti pada gambar berikut:
Menambahkan Incoming Event pada Service Worker
- Namun pada console saat ini, terdapat keanehan yaitu urutan console tidak sesuai dengan urutan kode-nya.
- Untuk itu, kita perlu menutup tab yang membuka halaman web, kemudian membuka tab baru dan mengakses kembali url localhost proyek.
- Maka urutannya akan kembali normal. Hal ini perlu dipahami agar bila ada update terhadap kode Service Worker, maka kita perlu menutup tab dan membuka tab baru agar update dapat berjalan seperti yang diinginkan.
Mengupdate Service Worker
- Sebelumnya, service worker digunakan hanya untuk menangkap event life cycle dari service worker.
- Service worker dapat juga digunakan untuk menangkap event yang lain. Contohnya adalah event fetch file.
- Modifikasi file sw.js menjadi seperti berikut: