history.back()显示Chrome的问题

时间:2013-01-08 07:08:49

标签: javascript jquery google-chrome

我正在使用history.back(-1)并尝试使用history.go(-1)转到上一个网址,它会成功导航到以前的网址,但在Chrome中它会从Cache中获取内容,所以如果我已经制作了通过ajax进行的任何更改并导航到其他页面并希望返回到以前的URL它应刷新页面并从DB而不是缓存中获取新的更新内容。此问题仅适用于chrome,也可能在Safari 5中。

或者除了使用历史记录对象之外,还有什么方法可以转到上一个URL吗?我们可以使用 document.referrer 来做,但它没有给我哈希(#)值,假设我有一个网址http://www.example.com/home.html#navigate,如果我使用 document.referrer 它只会给我http://www.example.com/home.html

请帮忙

1 个答案:

答案 0 :(得分:1)

你可以:

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