2017-02-24 2 views
0

Ich arbeite an einem großen Java EE-basierten Unternehmensportal. Die Benutzernavigation wird über jQuery-AJAX-Anfragen abgerufen. Da die Navigation ziemlich groß ist und diese AJAX Anfragen an den Server ein bisschen lang Laufen sind, verwende ichForce Cache Update für AJAX-Anfragen

Cache: true

Option, um den Browser speichert die Anforderung in seinem Cache zu lassen und später Ergebnisse für wiederholte Anfragen abrufen

So weit so gut. In einigen Fällen, wie z.B. Navigationseinträge haben sich geändert oder der Benutzer hat die Frontend-Sprache geändert. Ich muss den Browser veranlassen, die Anfragen vom Server neu zu laden.

Ich weiß, ich kann "cache: false" verwenden, aber anstatt nur den Browser-Cache zu umgehen, würde ich lieber die veralteten zwischengespeicherten Antworten aktualisieren, indem ich neue Daten vom Server anfordere.

Gibt es eine Option, die ich von Frontend oder Backend-Seite zu den Anforderungen oder deren Ergebnissen hinzufügen kann, damit der Browser die veralteten Ergebnisse mit neu abgerufenen Werten verwerfen?

Antwort

1

Ich habe das gleiche Problem festgestellt. Ich stellte fest, dass die Browser die zwischengespeicherten Daten basierend auf dem Alter des Cache-Inhalts automatisch aktualisierten, indem der HTTP-Header "Last-Modified" für die HTTP-Antworten festgelegt wurde.