2016-02-04 70 views

cevap

13

Hizmet çalışan önbellek API'sinin önemli bir avantajı, yerleşik tarayıcı önbelleğinden daha ayrıntılı denetim sağlamasıdır. Örneğin, hizmet çalışanınız, kullanıcı henüz ziyaret etmediği öğeler de dahil olmak üzere web uygulamanızı ilk kez çalıştırdığında birden çok istekte bulunabilirsiniz. Bu, sonraki istekleri hızlandıracaktır. Kendi önbellek denetim mantığınızı da uygulayarak, daha az kullanılan verileri silerek önemli görülen öğelerin önbellekte tutulmasını sağlayabilirsiniz.

+4

Bununla ilgili bir yorum geldi. Bir sayfadaki öğeleri önbelleğe almak için önbellek başlıkları kullanılıyorsa, kullanıcının tetiklediği bir yenileme, tarayıcının HTTP önbelleğini atlamasını sağlar. SW getirme olayı, istediğiniz zaman her zaman önbelleğinizden sunulabileceğiniz bir isteği engeller. –

+0

@GauntFace Gerçekten de açık bir sekmenin açık bir "yenilemesi" değil. Sayfa yeni bir sekmede yüklenmek gibi üstü kapalı bir "yenileme", sayfa üstbilgilerle önbelleğe alınmış ve cihaz çevrimdışıysa başarısız olur. –

0

Birincil fark kontroldür. Tarayıcı önbelleği, iyi olana kadar Önbellek Denetimi üstbilgileri tarafından kapatılır. Ağ adreslenebilir kaynaklarının nasıl önbelleğe alınacağını yönetmek için her türlü strateji vardır; özel, kamu; Yaşama zamanı, vb.

Servis çalışanı önbellekleme ile, bu varlıkların nasıl kalıcı olduğunu kontrol edebilirsiniz. Ama bu yükün üzerinizde olduğu anlamına geliyor.

Tarayıcı önbelleği, güvenilmez olduğunu düşündüğüm şeydir. Tarayıcı, cihaz depolama kapasitesine bağlı olarak öğeleri otomatik olarak temizler. Örneğin, iPhone'lar 25kb üzerindeki herhangi bir kaynak için önbelleğe almayı yok sayıyordu. Bugün bence onlar çok agresif.

Facebook ekibinin birkaç yıl önce bir çalışma yaptıklarını ve tarayıcıların önbelleklere göre önbelleğe almasını bekledikleri dosyaların yalnızca% 25'ini bulduğunu biliyorum. Bu, fazladan ağ trafiği ve sunucu etkinliği anlamına geliyordu.

Bu nedenle, hizmet çalışan önbelleklemesi daha iyi bir seçimdir. Önbellek başlıklarını kaldırmaya kalkma, sadece onlara yaslanma.