2017-10-31 4 views
0

Ich teste meine Anwendung - für die ich geschrieben habe Backend mit Knoten und Express-und Frontend mit React.wie zu deaktivieren Chrome Netzwerk-Caching zu jeder Zeit

Ich bin nicht ein langsames Netzwerk zu simulieren - aber ich bin eigentlich in einem langsamen Netzwerk sitzen.

Manchmal funktioniert eine XHR-Anfrage mit Axios - die ich in meinem Code geschrieben habe - nicht wirklich - wegen der Zwischenspeicherung von Netzwerkanforderungen.

Wenn ich die Chrome-Entwicklerkonsole in einem separaten Fenster öffne und den "Cache deaktivieren" -Button überprüfe, funktioniert das einwandfrei.

Wie kann ich diesen "Cache deaktivieren" jederzeit in Chrome erzwingen, ohne die Entwicklerkonsole zu öffnen.

Gibt es einen anderen Browser mit dieser Funktion?

+0

fügen Sie einen 'Cache-Control: no-cache' Header zur Antwort hinzu? –

Antwort

1

Der beste Weg ist, Request-Caching direkt vom Server zu verbieten. Höchstwahrscheinlich möchten Sie nicht, dass die API-Aufrufe trotzdem zwischengespeichert werden.

const router = require('express').Router(); 

// Set no cache headers to ensure browsers (especially IE) don't cache the API requests 
router.use((req, res, next) => { 
    res.setHeader('Expires', '-1'); 
    res.setHeader('Cache-Control', 'no-cache'); 
    next(); 
}); 

Dies sollte auf der Spitze Ihrer Express-App gehen, s.t. Alle Anfragen werden an diesen Filter übergeben. Wenn Sie möchten, dass einige Anforderungen zwischengespeichert werden, schreiben Sie sie darüber hinaus über diesen Handler.

Verwandte Themen