我正在使用history.back(-1),也尝试了history.go(-1)去到以前的URL,它成功地将我导航到以前的URL,但在Chrome中,它从缓存中获取内容,所以如果我通过ajax进行了任何更改并导航到其他页面,并希望回到以前的URL,它应该刷新页面并从DB而不是缓存中获取新的更新内容。此问题仅在chrome浏览器中存在,也可能在Safari 5中存在。
或者有任何方法去以前的URL,除了使用历史对象?我们可以使用document。referrer,但它不给我哈希(#)值,假设我有一个URL http://www.example.com/home.html#navigate,如果我使用文档。referrer它只会给我http://www.example.com/home.html
请帮
您可以:
- 禁用文件缓存,设置no-cache。(也可以在后端改变头文件,但我不知道你使用的是什么后端)
- 您可以使用
setInterval
来验证window.location.hash
并进行回调。- Router中的Backbone.js可能会对你有所帮助。
- Sammy.js也是一个很好的选择!
- 你可以谷歌其他
pushState
库。
- 您可以将页面内容中的DOM引用保存在一个变量中,以便当
xhr
的某些内容需要为安全性应用更改时,您更改它的内容,因此如果用户使用历史记录,则DOM将在内存元素树中构造,并且此时页面已经更改。(我还没有测试过,但理论上它可以工作,因为您只需要参考浏览器用来填充DOM的实例)。
希望这对你有帮助,但是根据你给的信息,我不能再进一步了