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:
strategyadlı dışa aktarma işleminiworkbox-streamshizmetindenstreamsStrategyolarak içe aktarın- Adlandırılmış dışa aktarma işlemini
openDBveidbkonumundan, adlandırılmış dışa aktarma işleminimarkedvemarkedkonumundan içe aktarın. - Navigasyon için rota kaydından önce yeni bir rota kaydı ekleyin
- URL'nin
pathnamekısmının/previewolup olmadığını kontrol etmelidir. - Aşağıdaki koşulları karşılayan bir yayın stratejisi kullanılmalıdır:
preview/index.htmletiketinin içeriğiylemainetiketinin içerik alanından yanıt vermesettings-storeIndexedDB'yi açan,settingsnesne 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,bodyvehtmletiketleriyle 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.