Statik dosyaları (.js, .css) işaret eden html dosyaları oluştururken - önbellek bozmayı nasıl ele alırsınız? Dosyayı her değiştirdiğinizde blabla.css? v = VERSIONNUMBER el ile değiştiriyor musunuz? Dosyanın belleğine göre otomatik bir mekanizman var mı?node.js önbellek bozma teknikleri
cevap
Bunun için tasarlandığından, HTTP protokolüne kadar önbelleğe alma işlemini bırakırdım. Her yanıtta bir ETag
yanıt başlığı sağlayın ve If-none-match
istek başlığını kontrol ederek koşullu istekler için destek ekleyin.
Bir varlık etiketini hesaplamanın iyi bir yolu, dosyaları depolamaya göre değişir. Tipik bir * nix dosya sisteminde, inode değeri iyi bir başlangıçtır.
Örnek: Özel durumlarda
fs.stat(filePath, function(err, stats) {
if (err || !stats.isFile()) {
//oops
}
else {
var etag = '"' + stats.ino + '-' + stats.size + '-' + Date.parse(stats.mtime) + '"';
//if etag in header['if-non-match'] => 304
//else serve file with etag
}
});
, hatta dosya değişikliklerine en kısa sürede girişini ortadan kaldırılması için bir fs.watchFile()
geri arama hafızasında ETag hatta dosyayı önbelleğe ve kayıt isteyebilirsiniz.
Teşekkürler. Ancak bazı tarayıcıların bu tür başlıklara aldırış etmediklerini ve önbelleklerinde dosya varsa 304'leri kontrol etmeyi düşünmüyorum. Önerilerinizin hala bunu nasıl çözdüğümü kaçırmıyorum? –
Ayrıca .. FireFox olabilir .. umm .. * Yalan söylüyorum * (firebug ile)? Net sekmesinde, bu statik dosyaları almak ve güzel bir 200 http yanıtıyla geri dönmek için istekleri görüyorum. Ayrıca, _reality_ sunucumu vurmuyor veya Fiddler'da görünmüyorlar (yalnızca çok agresif yerel önbellek tarafından sunulurlar) - tekrar bir şey özlediğimi anlatayım lütfen. –
- 1. Django 1.8 Önbellek bozma + Amazon S3
- 2. AVL ağaç döndürme teknikleri?
- 3. Delphi Baskı Teknikleri
- 4. Ortak SIMD teknikleri
- 5. Bu, şablon önbellek bozma için açısal olarak iyi bir yöntem midir?
- 6. Köşeli 2 tembel yükleme teknikleri
- 7. Özel Kilit Ekranı Uygulama Teknikleri
- 8. Internet Explorer'da etki alanlarını engelleme teknikleri
- 9. Özellik seçim teknikleri ile ilgili öneriler?
- 10. Jersey: Önbellek için varsayılan Önbellek Denetimi
- 11. yapı bozma ederken Vec <Sıralama (dize)> yineleme
- 12. çevirmen önbellek
- 13. Raylar önbellek
- 14. ExoPlayer önbellek
- 15. Yapılandırma önbellek
- 16. Node.js neden Node.js?
- 17. node.js
- 18. node.js
- 19. (node.js)
- 20. Node.js
- 21. Node.JS
- 22. node.js
- 23. node.js
- 24. node.js
- 25. Node.js:
- 26. node.js
- 27. Node.js
- 28. Node.JS
- 29. node.js
- 30. Node.js
Bunu en basit yolu kullanarak gerçekleştirdik: Uygulamanın başlangıç zaman damgasını her statik kaynak için sorgu dizesi olarak eklemeniz yeterlidir. Örnek burada: http://ankitjain.info/ankit/2013/12/05/cache-busting-nodejs-express-jade/ – ankitjaininfo