1. Hoş geldiniz
Bu laboratuvarda, mevcut bir web uygulamasına akış rotası yanıtı ekleyerek performansı artıracaksınız. Bu codelab, Progresif Web Uygulaması atölyesi ile ilgili yardımcı codelab'lerin yedincisidir. Önceki codelab'in başlığı Empowering your PWA idi. Bu seride bir codelab daha var.
Neler öğreneceksiniz?
- Bir hizmet çalışanına akış yanıtı ekleme
Bilmeniz gerekenler
- JavaScript
İhtiyacınız olanlar
- Service Workers ve Streams'i destekleyen bir tarayıcı
2. Hazırlanın
Bu codelab'i tamamlamak için gereken başlangıç kodunu klonlayarak veya indirerek başlayın:
Depoyu klonlarsanız pwa06--service-worker-includes
dalında olduğunuzdan emin olun. Zip dosyası, söz konusu şubenin kodunu da içerir.
Bu kod tabanı için Node.js 14 veya sonraki bir sürümü gerekir. Kod kullanılabilir hale geldiğinde, ihtiyacınız olan tüm bağımlılıkları yüklemek için komut satırından kodun klasöründe npm ci
komutunu çalıştırın. Ardından, kod laboratuvarı için geliştirme sunucusunu başlatmak üzere npm start
komutunu çalıştırın.
Kaynak kodunun README.md
dosyası, dağıtılan tüm dosyalarla ilgili açıklama sağlar. Ayrıca, bu codelab boyunca kullanacağınız mevcut temel dosyalar şunlardır:
Önemli Dosyalar
js/preview.js
- Sayfanın JavaScript dosyasını önizlemeservice-worker.js
- PWA'nın hizmet çalışanı dosyası
3. Yayın Önizlemesi
Önizleme sayfası üç net parçaya ayrılabilir: başlık, derlenmiş gövde ve altbilgi. Şu anda derlenmiş gövde istemci tarafında oluşturuluyor ancak bunun için bir neden yok. Bunu Service Worker'a taşıyalım.
Gövdeyi derlemek için eşzamansız içerik araması yapılır. Gezinme yanıtında asenkron çalışma maliyetli olduğundan, bilinen içeriği önce tarayıcıya aktarmak için harika bir fırsattır.
Bunun için öncelikle js/preview.js
içindeki içeriği temizleyerek derleme işleminin durdurulduğundan emin olun. Ardından, service-worker.js
bölümünde aşağıdakileri yapın:
strategy
adlı dışa aktarma işleminiworkbox-streams
hizmetindenstreamsStrategy
olarak içe aktarın- Adlandırılmış dışa aktarma işlemini
openDB
veidb
konumundan, adlandırılmış dışa aktarma işleminimarked
vemarked
konumundan içe aktarın. - Navigasyon için rota kaydından önce yeni bir rota kaydı ekleyin
- URL'nin
pathname
kısmının/preview
olup olmadığını kontrol etmelidir. - Aşağıdaki koşulları karşılayan bir yayın stratejisi kullanılmalıdır:
preview/index.html
etiketinin içeriğiylemain
etiketinin içerik alanından yanıt vermesettings-store
IndexedDB'yi açan,settings
nesne deposundan içeriği alan ve bu içeriğin oluşturulmuş Markdown sürümünü döndüren bir işlevle yanıt ver.- Kapanış
main
,body
vehtml
etiketleriyle yanıt verin.
- URL'nin
Akış yanıtı etkinleştirildikten sonra geri dönün ve tarayıcınızda site önizlemesini açın. Sayfa içeriğinin artık doğrudan hizmet çalışanından oluşturulduğunu görmelisiniz. İstemci tarafı kodu gerekmez.
4. Tebrikler!
Service worker'ları ve önbellek depolama API'sini kullanarak web uygulamanızı nasıl çevrimdışı hale getireceğinizi öğrendiniz.
Serideki bir sonraki codelab, Çalışanlarla Çalışma'dır.