1. Selamat Datang
Dalam lab ini, Anda akan mengambil aplikasi web yang ada dan menambahkan respons rute streaming untuk meningkatkan performa. Codelab ini adalah codelab ketujuh dalam serangkaian codelab pendamping untuk workshop Progressive Web App. Codelab sebelumnya adalah Memberdayakan PWA Anda. Ada satu codelab lagi dalam seri ini.
Yang akan Anda pelajari
- Menambahkan respons streaming ke pekerja layanan
Yang perlu Anda ketahui
- JavaScript
Yang akan Anda butuhkan
- Browser yang mendukung Pekerja Layanan dan Streaming
2. Memulai Persiapan
Mulai dengan meng-clone atau mendownload kode awal yang diperlukan untuk menyelesaikan codelab ini:
Jika Anda meng-clone repo, pastikan Anda berada di cabang pwa06--service-worker-includes
. File ZIP juga berisi kode untuk cabang tersebut.
Basis kode ini memerlukan Node.js 14 atau yang lebih baru. Setelah kode tersedia, jalankan npm ci
dari command line di folder kode untuk menginstal semua dependensi yang Anda perlukan. Kemudian, jalankan npm start
untuk memulai server pengembangan codelab.
File README.md
kode sumber memberikan penjelasan untuk semua file yang didistribusikan. Selain itu, berikut adalah file utama yang sudah ada dan akan Anda gunakan selama codelab ini:
File Utama
js/preview.js
- Pratinjau file JavaScript halamanservice-worker.js
- file pekerja layanan PWA
3. Pratinjau Streaming
Halaman pratinjau dapat dibagi menjadi tiga bagian yang jelas: head, body yang dikompilasi, dan footer. Saat ini, isi yang dikompilasi dirender di sisi klien, tetapi tidak ada alasan untuk itu. Mari kita pindahkan ke Service Worker.
Untuk menyusun isi, ada pencarian konten asinkron. Karena pekerjaan asinkron dalam respons navigasi mahal, ini adalah peluang bagus untuk melakukan streaming konten yang diketahui ke browser terlebih dahulu.
Untuk melakukannya, hapus terlebih dahulu konten di js/preview.js
untuk memastikan bahwa konten tersebut tidak lagi melakukan kompilasi. Kemudian, di service-worker.js
, lakukan hal berikut:
- Impor ekspor bernama
strategy
dariworkbox-streams
sebagaistreamsStrategy
- Impor ekspor bernama
openDB
dariidb
dan impor ekspor bernamamarked
darimarked
- Sebelum pendaftaran rute untuk navigasi, tambahkan pendaftaran rute baru
- Harus memeriksa apakah
pathname
URL adalah/preview
- Harus menggunakan strategi streaming yang
- Memberikan respons dengan konten
preview/index.html
melalui area konten tagmain
- Respons dengan fungsi yang membuka IndexedDB
settings-store
, mendapatkan konten dari penyimpanan objeksettings
, dan menampilkan versi konten yang dirender markdown. - Berikan respons dengan tag penutup
main
,body
, danhtml
.
- Memberikan respons dengan konten
- Harus memeriksa apakah
Setelah respons streaming diterapkan, kembali dan buka pratinjau situs di browser Anda. Anda akan melihat bahwa konten halaman kini dirender langsung dari pekerja layanan, tanpa memerlukan kode sisi klien.
4. Selamat!
Anda telah mempelajari cara membuat aplikasi web Anda tersedia secara offline menggunakan pekerja layanan dan Cache Storage API.
Codelab berikutnya dalam seri ini adalah Bekerja dengan Pekerja