Durante il rendering di file html che fanno riferimento a file statici (.js, .css) - come si gestisce il busting della cache? modifichi manualmente il file blabla.css? v = VERSIONNUMBER ogni volta che cambi il file? hai qualche meccanismo automatico basato sul file mtime?node.js tecniche di busting della cache
risposta
Avrei lasciato il caching sul protocollo HTTP, poiché è stato progettato per questo. È sufficiente fornire un'intestazione di risposta ETag
in ciascuna risposta e aggiungere il supporto per le richieste condizionali controllando l'intestazione della richiesta If-none-match
.
Un buon modo per calcolare un tag di entità dipende dal modo in cui memorizzare i file. Su un tipico filesystem * nix, il valore inode è un buon inizio.
Esempio:
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
}
});
In casi particolari, si potrebbe anche voler mettere in cache l'ETAG o anche il file nella memoria e registrare un callback fs.watchFile()
al fine di invalidare la voce non appena il file cambia.
Grazie. Ma suppongo che alcuni browser ignorino tali e tali intestazioni e non si preoccupino di controllare per 304 se hanno il file nella loro cache .. mi manca come in qualche modo il tuo suggerimento risolva ancora questo? –
Inoltre .. Potrebbe FireFox essere .. umm .. * mentire * per me (tramite firebug)? Nella sua scheda Rete vedo richieste che vanno a prendere quei file statici e ritornano con una bella risposta http 200, mentre in _reality_ non colpiscono il mio server o appaiono in Fiddler (vengono semplicemente serviti dalla cache locale molto aggressiva) - di nuovo per favore fammi capire se mi manca qualcosa. –
- 1. Moduli specifici di busting della cache con RequireJS
- 2. Django 1.8 Cache busting + Amazon S3
- 3. Tecniche di memorizzazione dati nella cache MVC3
- 4. HTML5 Boilerplate .htaccess cache busting non funziona con WordPress
- 5. Cache busting immagini che sono collegate all'interno dei file SASS
- 6. Meccanismo di busting della cache per il progetto Java/SpringMVC/Maven
- 7. Evita i parametri di busting della cache dell'URL con RequireJS per CDN
- 8. Come posso escludere le immagini dal busting della cache di Rails?
- 9. Cache busting con Scripts.Render ma senza URL bundle
- 10. Django pipeline Cache Busting non sta aggiornando il file cache/hash
- 11. Node.js/Cache Express
- 12. Busting Ruby on Rails Myths
- 13. Posso fare affidamento su ETags per il controllo della cache
- 14. C++ Gestione della memoria Tecniche/pratiche
- 15. Come cache con il sito manifest Node.js
- 16. Controllo delle scadenze della cache
- 17. AJAX Tecniche di ottimizzazione?
- 18. Tecniche di debug multithread
- 19. Tecniche di debug di multiprocessing
- 20. Pianificazione della capacità della dimensione della cache
- 21. Consigli e tecniche di replicazione Muzak
- 22. Tecniche per migliorare il tasso di transazione
- 23. Come sfruttare la cache del browser in node.js?
- 24. Tecniche di ottimizzazione in Python
- 25. Raccomandazioni sulle tecniche di ricerca
- 26. cluster Grafici Tecniche di visualizzazione
- 27. Politica di sfratto della cache di Guava
- 28. Memorizzazione nella cache delle query del database con Node.js
- 29. Node.js, Express e css, js, risorse immagine
- 30. Gestione della coerenza della cache DMA
Abbiamo ottenuto ciò utilizzando il modo più semplice: è sufficiente aggiungere la data/ora di inizio dell'app come stringa di query per ogni risorsa statica. Esempio qui: http://ankitjain.info/ankit/2013/12/05/cache-busting-nodejs-express-jade/ – ankitjaininfo