Is there a general purpose solution for preserving dom state so that when a user returns to a page by using back/forward, the whole page is in the exact state that they left it?
This post asks and answers why the behavior is inconsistent with different browsers and different javascript libraries...
Ajax, back button and DOM updates
...but I am curious if anyone has a general solution to this problem that doesn't require reloading the page.
Is there a general purpose solution for preserving dom state so that when a user returns to a page by using back/forward, the whole page is in the exact state that they left it?
This post asks and answers why the behavior is inconsistent with different browsers and different javascript libraries...
Ajax, back button and DOM updates
...but I am curious if anyone has a general solution to this problem that doesn't require reloading the page.
Share Improve this question edited May 23, 2017 at 12:13 CommunityBot 11 silver badge asked Oct 15, 2009 at 15:51 PetePete 1,8102 gold badges20 silver badges31 bronze badges2 Answers
Reset to default 3I'm afraid there isn't, and there really can't be because we're talking about browser behavior that's pletely discretionary and not standards-defined. You could use Ajax to aggressively synchronize relevant DOM state to a session on a server, and always restore from that state on page load, but that will preserve the most recent state for that page, not the state that was necessarily present at a given desired point in the browser history.
You can use this cache busting technique in rails to make it work in modern browsers (chrome, ie8+, ff 3.5+). This worked for me on my last project when we had ajax update the dom and had to navigate back and have the ajax updates persist.
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"