İlerleyen Web Uygulamamda, statik varlıklarım için bir hizmet çalışanında Önbellek API'sını mı kullanmalıyım yoksa yalnızca bunlar için tarayıcının yerel önbellek denetimine güvenmem gerekir mi? Fark ne?Service Worker Cache API'sini ve normal tarayıcı önbelleğini kullanmanın arasındaki fark nedir?
cevap
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.
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.
- 1. Trace ve TraceSource kullanmanın arasındaki fark
- 2. Python'da {} ve [] arasındaki fark nedir?
- 3. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 4. $ arasındaki fark nedir? ve PowerShell
- 5. Ekle ve dizine ekle arasındaki fark nedir?
- 6. Bu iki varsayılan kurucuyu kullanmanın arasındaki fark nedir?
- 7. RSpec'te, saplama arasındaki fark nedir? ve saplama?
- 8. Fark() arasındaki fark nedir mustache.js
- 9. @include ve userscripts'taki tutar arasındaki fark nedir?
- 10. Dalvik ve dalvik-cache nedir?
- 11. .exp kullanımı nedir ve .lib ile .dll arasındaki fark nedir?
- 12. arasındaki fark nedir?
- 13. Java arasındaki fark nedir
- 14. CLI-Loop nedir? Normal döngüdeki fark nedir?
- 15. arasındaki fark nedir?
- 16. arasındaki fark nedir?
- 17. HTML5'te Paylaşılan İşçi ve İşçi arasındaki fark nedir?
- 18. app.doScript ve $ .evalFile arasındaki fark nedir?
- 19. gVim ve gVim arasındaki fark nedir?
- 20. isAlpha ve isLetter arasındaki fark nedir?
- 21. Control.Enter ve Control.GotFocus olayları arasındaki fark nedir?
- 22. .got ve .got.plt bölümü arasındaki fark nedir?
- 23. AutomationProperties.AutomationID ve AutomationProperties.Name arasındaki fark nedir?
- 24. Android'de getDir ve getFilesDir arasındaki fark nedir?
- 25. R içinde `=` ve `<-` arasındaki fark nedir?
- 26. uint ve System.UInt32 arasındaki fark nedir?
- 27. PropertyChangeListener ve VetoableChangeListener arasındaki fark nedir?
- 28. XSS'de IDREF ve IDREFS arasındaki fark nedir?
- 29. Cacerts ve keystore arasındaki fark nedir?
- 30. GPLv2 ve GPLv3 arasındaki fark nedir?
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. –
@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. –