I’ve made a twitter-like web app. Users can follow one another when viewing eachother’s pages. Here’s a high-level description of what’s happening:
- UserA views their own page at http://www.mysite.com/UserA, which renders a list of users they’re following.
- UserA navigates to UserB’s page at http://www.mysite.com/UserB.
- UserA follows UserB (via ajax).
- UserA hits the back button on the browser, to go see their own page again at http://www.mysite.com/UserA.
- It looks like a cached version of the page is shown, because the list of UserA’s followings is not being shown.
- If I hit the refresh button, the listing will now be current.
So is there a way to expire the page in the browser, so that it pulls a fresh copy when hitting the back button? Ideally I could do this only if the user had followed another user, otherwise a cached version of the page would be perfect.
I hope the problem is explained clearly enough, please let me know if I can supply more information. I am using a java/servlets based server (google app engine).
Thank you
You need to instruct the webbrowser to not cache the pages in the history so that it’s forced to fire a brand new request to the server when you navigate back in the history. In JSP/Servlet this can be done by adding the following headers to the response of the page(s) you’d like to disable the cache for:
This can be done in a
Servletwhich forwards to the JSP or aFilterwhich intercepts on JSP requests.See also: