最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do I preserve dom state in the browser history after dynamic dom manipulation? - Stack Overflow

programmeradmin0浏览0评论

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 badges
Add a ment  | 

2 Answers 2

Reset to default 3

I'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"
发布评论

评论列表(0)

  1. 暂无评论