Tek sayfa uygulamalar için web tarayıcı önbelleğini doğru bir şekilde nasıl kullanabileceğimi bulmaya çalışıyorum.
Oldukça tipik bir tasarıma sahibim: SPA'yı uygulayan birkaç HTML, JS ve CSS dosyası ve SPA tarafından tüketilen bir miktar JSON verisi. Bir güncellemeyi zorlamak istediğimde sorunlar ortaya çıkıyor: Sitenin statik kısmını ve JSON'u oluşturan kodu aynı anda güncelliyorum, ancak istemci tarayıcılar genellikle statik kısmı önbelleğe aldı, bu nedenle eski kod yeni verileri işlemeye çalışıyor. (yapılan değişikliklere bağlı olarak) problemlerle karşılaşabilir. (Özellikle, IE, yeniden doğrulanmadan önbelleğe alınmış JS'yi kullanma konusunda Chrome veya Firefox'tan daha agresif görünüyor.)
Bununla başa çıkmanın en iyi yolu nedir?
- JSON değişikliklerimin geriye dönük olarak uyumlu olduğundan ve tarayıcı önbelleklerinin makul bir süre içinde sona ereceğini varsayalım.
- Hem statik JS'ye hem de JSON'a bir tür sürüm numarası yerleştirin, sonra
window.location.reload(true);
eşleşmiyorsa uygulayın. - Tarayıcıların, siteyi yüklemek için birkaç tur atmak anlamına gelse bile, her yükte tüm kaynakları yeniden değerlendirebilmelerini sağlamak için uygun başlıkların (
must-revalidate
veyano-cache
veya her neyse; kaynaklar bunun nasıl yapılacağına bağlı olarak değişir) kombinasyonunu belirleyin. - Bir önbellek kontrolümü mikro yönetiyor ve bir güncelleme zorlamak istediğimde statik içeriğin süresinin dolmasını sağlamak için başlıkları sona erdiriyor.
- Başka bir şey?