在动态dom操作后,如何在浏览器历史记录中保留dom状态?

时间:2009-10-15 15:51:55

标签: javascript browser-history

是否存在保留dom状态的通用解决方案,以便当用户使用后退/前进返回页面时,整个页面处于他们离开的确切状态?

这篇文章询问并回答了为什么行为与不同的浏览器和不同的javascript库不一致......

Ajax, back button and DOM updates

...但我很好奇是否有人对此问题有一般解决方案,不需要重新加载页面。

2 个答案:

答案 0 :(得分:3)

我担心没有,而且确实不可能,因为我们谈论的浏览器行为是完全自由裁量的,而不是标准定义的。您可以使用Ajax积极地将相关DOM状态同步到服务器上的会话,并始终在页面加载时从该状态恢复,但这将保留该页面的最新状态,而不是状态必须出现在浏览器历史记录中给定的所需点。

答案 1 :(得分:3)

您可以在rails中使用此缓存清除技术,使其在现代浏览器中工作(chrome,ie8 +,ff 3.5+)。当我们使用ajax更新dom并且必须导航回来并保持ajax更新时,这对我的上一个项目起作用。

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"