Workbox ile çalışma zamanını önbelleğe alma

Çalışma zamanı önbelleğe alma, yanıtların önbelleğe "kullandıkça" kademeli olarak eklenmesi anlamına gelir. Çalışma zamanı önbelleğe alma, mevcut taramanın güvenilirliğini isteği, aynı URL'ye yönelik gelecek isteklerin daha güvenilir hale getirilmesine yardımcı olabilir.

Tarayıcının HTTP önbelleği, bir çalışma zamanı önbelleğe alma örneğidir; yalnızca doldurulur belirli bir URL için istekte bulunduktan sonra. Ancak Service Worker'lar sayesinde ve çalışma zamanı önbelleğine alma gibi özellikleri de sunar.

Stratejik hareket etme

Önbelleğe alma yerine (her zaman bir önbellekten önceden tanımlanmış dosyalar sunmak için kullanılır), çalışma zamanı önbelleğine ağ ve önbellek erişimi için farklı yöntemler kullanabilirsiniz. Her kombinasyon, genellikle Bu durum önbellek stratejisi olarak adlandırılır. Temel önbelleğe alma stratejileri şunlardır:

  • Ağa öncelik veren
  • Önbellek öncelikli
  • Yeniden doğrulama sırasında eski tarihli

Ağa öncelik veren

Bu yaklaşımda, hizmet çalışanınız önce ağ. Ağ isteği başarılı olursa harika! Yanıt, bulunur ve yanıtın bir kopyası Önbellek Depolama Alanı kullanılarak saklanır API: Yeni bir giriş oluşturma veya aynı giriş için önceki bir girişi güncelleme URL'yi tıklayın.

Sayfadan hizmet çalışanına ve hizmet çalışanından ağa giden isteği gösteren şema. Ağ isteği başarısız olduğundan istek önbelleğe gider.

Ağ isteği tamamen başarısız olursa veya çok uzun sürüyor için bir yanıt döndürürse, önbellekten gelen en son yanıt döndürülür .

Önbellek öncelikli

Önbellek öncelikli strateji, ağ öncelikli stratejinin tam tersidir. Burada yaklaşımında, hizmet çalışanınız bir isteğe müdahale ettiğinde ilk olarak önbelleği kullanır. Storage API'yi inceleyerek önbelleğe alınmış bir yanıt olup olmadığını kontrol edin. Varsa bu yanıt web uygulamasına döndürülür.

Ancak bir önbellekte eksiklik olursa hizmet çalışanı ağa gider buradan yanıt almayı deneyin. Ağ isteğinin başarılı olursa web uygulamanıza döndürülür ve bir önbellekte bir kopyası kaydedilir. Bu önbelleğe alınmış kopya, olmasına dikkat edin.

Sayfadan hizmet çalışanına ve hizmet çalışanından önbelleğe aldığı isteği gösteren şema. Önbellek isteği başarısız olduğundan istek ağa gönderilir.

Yeniden doğrulama sırasında eski tarihli

Eski yeniden doğrulama işlemi ise karma bir yöntemdir. Bunu kullanırken hizmetiniz, çalışan, önbelleğe alınmış bir yanıtı hemen kontrol eder ve yanıt bulursa, bu yanıtı web uygulamanıza geri yükleyebilirsiniz.

Bu arada, önbellek eşleşmesi olsun ya da olmasın, hizmetiniz aynı zamanda bir ağ isteğiyle "güncel" tıklayın. Bu yanıtı, önceden önbelleğe alınmış yanıtları güncellemek için kullanılır. İlk önbellek olup olmadığını kontrol edin. Ağ yanıtının bir kopyası da web uygulamasını indirin.

Sayfadan hizmet çalışanına ve hizmet çalışanından önbelleğe aldığı isteği gösteren şema. Önbellek, anında yanıt döndürürken aynı zamanda gelecekteki istekler için ağdan güncelleme getirir.

Neden Workbox'ı kullanmalısınız?

Bu önbelleğe alma stratejileri, normalde hazırlamanız gereken tariflerle kendi hizmet çalışanınızda tekrar tekrar yazın. Bu nedenle, Workbox bunları kendi paketinin bir parçası olarak paketlenmiş stratejiler kitaplığı hizmet çalışanınızla hemen iletişime geçebilirsiniz.

Workbox ayrıca sürüm oluşturma desteği sunar. Böylece, geçerlilik sonu veya önbelleğe alınan girişler için web uygulamanızı güncellemeler girişe karşılık gelen bir e-posta alırsınız.

Öğelerinizden hangilerinin önbelleğe alınması ve hangi stratejilerle kullanılması gerekir?

Çalışma zamanını önbelleğe alma, önceden önbelleğe almayı tamamlayıcı olarak düşünülebilir. Tüm öğeler zaten önbelleğe alınırsa işlem tamamlanmış olur. önbelleğe alınmış olması gerekir. Nispeten karmaşık olan herhangi bir web uygulamasında büyük olasılıkla her şeyi önbelleğe almayacaktır.

Daha büyük medya dosyaları, CDN gibi bir üçüncü taraf ana makineden sunulan öğeler, veya API yanıtları, düzenlenemeyecek öğe türlerine birkaç örnektir. önceden önbelleğe alınır. İstekleri tanımlamak için Geliştirici Araçları'ndaki Ağ panelini kullanın ve bunların her biri için, hangi hedefe ulaşmaktan güncellik ve güvenilirlik arasında karşılaştırma yapmak uygun.

Güvenilirliği güncellikten çok önceliklendirmek için eski tarihli doğrulama yöntemini kullanın

Eski yeniden doğrulama stratejisi, neredeyse önbelleğe alınmış bir yanıt döndürdüğü için hemen (önbellek ilk istek üzerinden doldurulduktan sonra) hızlı performans elde etmemizi sağladı. Bununla birlikte, eski olabilecek yanıt verilerini geri almanın verdiği ulaşılabilecektir. Bu stratejiyi kullanmak en iyi sonucu verir için kullanılan ilk API yanıtları veya kullanıcı profili resimleri bir görünümü anında göstermenin önemli olduğunu bildiğiniz durumlarda, eski bir değerse.

Güvenilirliğe değil, güncelliğe öncelik vermek için ağ öncelikli yaklaşımı kullanın

Bir anlamda, ağ öncelikli bir strateji kullanmak savaşınızda yenilgiyi kabul etmektir ona öncelik verilir ancak bu, belirsizliği beraberinde getirir düşünmesi gerekir. Belirli öğe türleri için yeni bir yanıt görmek eski bilgileri geri almayı tercih eder. Şu durumlarda güncelliği tercih edebilirsiniz: sık güncellenen bir makalenin metni için API isteğinde bulunmak. kullanır.

Service Worker içinde yalnızca ağa doğrudan karşı çıkmayı seçerseniz, zarardan ve eski olabilecek bir yanıt olsa bile bir şeye geri döner. Şu anda kadar hızlıdır, ancak en azından çevrimdışıyken de güvenilir olursunuz.

Sürümlü URL'ler için önbellek öncelikli kullanın

Önbellek öncelikli bir stratejide, bir giriş önbelleğe alındıktan sonra hiçbir zaman güncellenmez. Bunun için Bu nedenle, bu özelliği yalnızca unutmayın. Özellikle, sürüm oluşturma içeren URL'lerde en iyi sonucu verir. ve aynı türde URL'ler için aynı zamanda Cache-Control: max-age=31536000 yanıt başlığı.