2010-12-29 30 views
7

bir bildirim dosyası ile çevrimdışı önbelleğe kullanan bir HTML5 uygulaması vardır. Önbelleğin güncellenmesini tetiklemenin tek yolu, sunucudaki bildirim dosyasında bir değişikliktir. Önbelleği sona erdirmek ve güncellemeyi uygulamak için programatik bir yol arıyorum.HTML5 çevrimdışı önbellek programlı son kullanma

Önbelleği sona erdirmek için window.applicationCache üzerinde bir yöntem aramak için specile gitti. Ama bulamadı. Bir güncelleme() yöntemi vardır, ancak yalnızca önbellek süresi dolduğunda güncellenir (örn. Bildirim dosyasında değişiklik var). Yani bu yardımcı olmuyor.

Herkes Uygulama önbelleğini süresi dolan ve indirilmesinin zorunlu bir programatik yolu bilir?

+0

* sunucu tarafında * programatic yolu sunucusunun eski tezahür dosyası için bir '404' etmektir. Size manifestin eski sürümleri süresi dolacak yeteneğine sahip olacak şekilde bir versiyon dizesini içeren bir bildirim dosya adı kullanmalıdır. – meagar

cevap

2

AFAIK, manifest bir güncelleme başlatılması tek yoludur. HTML5 Rocks web sitesinde, durumunu appCache.status numaralı telefondan dinledikten sonra, önbellek (manifest güncellemesinden sonra) hemen güncelleyerek applicationCache.swapCache() numaralı telefonu arayarak ilgili bir makale vardır.

bunu yeterli olacaktır emin değilim, ama onun iyi bir okuma ("Cache Güncellenmesi" na inin) - http://www.html5rocks.com/tutorials/appcache/beginner/

2

O bir güncelleme sadece bir "güncellenmiş" tezahür tarafından tetiklenen doğrudur dosya. Ancak bazı tarayıcı (FF, krom), manifest dosyası tarafından başvurulan tüm dosyaları kontrol etmez. Örneğin jpg, sunucunun daha yeni olup olmadığını test etmeyecektir. Tarayıcının genel önbelleğe alma politikası, güncelleme işlemini etkiliyor gibi görünüyor. Tarayıcıyı, önbellek bildiriminde bulunan dosyaların tümünü veya bir kısmını kontrol etmeye zorlamak için, bu dosyaları HTTP başlığındaki "Önbellek Denetimi: no-cache" ile etiketlemeniz gerekir.

çerezleri kullanarak güncelleme işlemini kontrol edebilirsiniz. Çerez komutlarını yorumlayan bir sunucu komut dosyasına sahipseniz, tarayıcıyı javascript yoluyla eski önbellek içeriğine zorlayabilirsiniz. istemci cache.update(), çerez "cache_clear" set sahip gerçekleştirir Örneğin , sunucu eski uygulama önbelleği içeriği tarayıcı neden olur Yanıt kodu 404 ile cevap verebilir.

İlgili konular