2015-09-25 24 views
6

Ben iki farklı yol denedim ve her iki çalışmaz: tezahür böylece tarayıcı görürGörsel bildirim güncellemeleri olduğunda tarayıcı güncellemesini nasıl yapar, ancak önbelleğe almayı nasıl sağlar?

1. Güncelleme Bu JavaScript dosyaları dışındaki tüm dosyaları günceller değişiklikleri ve güncellemeleri

var. Tarayıcı bir fark olduğunu görür, her şeyi indirir (JavaScript dosyaları dahil) ancak JavaScript dosyalarının önbelleğe alınmış sürümünü kullanır.

2. Gönder no-cache başlıkları (aşağıdaki kodu bakınız) script önbelleğe Bu hata atmak tarayıcı neden olur ve artık hiçbir şey önbelleğe

dosyaları durdurmak için. Bir ApplicationCache hatası oluştuğunu söylüyor.

no-cache kodu:

<filesMatch "\.(js)$"> 
    FileETag None 
    <ifModule mod_headers.c> 
     Header unset ETag 
     Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
     Header set Pragma "no-cache" 
     Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
    </ifModule> 
</filesMatch> 

yukarıda tüm tarayıcıları değil önbellek çevrimdışı kullanım için uygulama yapar.

Bunun bir yolu var mı?

+0

İlk not, uygulama önbelleği kaldırılmış gibi görünüyor (ama yine de tek çözüm): https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache Bunu nasıl anlarım tarayıcı komut dosyalarını indirir? Başarılı bir şekilde yüklendiğine inanmak zor ama bunu kullanmıyorum. "304 - Değiştirilmemiş" durumu verebilir. – msoft

cevap

1

Bu en iyi uygulama olup olmadığını söylemek için yeterli bir bakış açısına sahip değilim, ancak ekibimiz Javascript değişiklikleri yaptığında, yolun sonunda bir sorgu dizesi değişkeni artar.

<script type="text/javascript" src="/path/to/script.js?v=10"></script> 

Not Ekle src özelliğinde sonunda v = 10. Bu, tarayıcıya farklı bir dosyanın alındığını ve dolayısıyla önbelleği atlattığını gösterir.

Bu yöntemi, mevcut iş arkadaşları uygulamanızı izleyerek aldım.

+0

Bu kötü bir çözüm değil ve otomatik olarak bildirimi de güncellemeliyim (çünkü bildiride eşleşmesi gerekir) –