history.back()显示Chrome的问题



我正在使用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

请帮

您可以:

  1. 禁用文件缓存,设置no-cache。(也可以在后端改变头文件,但我不知道你使用的是什么后端)
  2. 您可以使用setInterval来验证window.location.hash并进行回调。
    • Router中的Backbone.js可能会对你有所帮助。
    • Sammy.js也是一个很好的选择!
    • 你可以谷歌其他pushState库。
  3. 您可以将页面内容中的DOM引用保存在一个变量中,以便当xhr的某些内容需要为安全性应用更改时,您更改它的内容,因此如果用户使用历史记录,则DOM将在内存元素树中构造,并且此时页面已经更改。(我还没有测试过,但理论上它可以工作,因为您只需要参考浏览器用来填充DOM的实例)。

希望这对你有帮助,但是根据你给的信息,我不能再进一步了

最新更新