2013-01-08 42 views
0

我使用history.back(-1),并尝试history.go(-1)转到上一个URL,它将我导航到先前的URL,但在Chrome中它需要来自Cache的内容,所以如果我通过ajax进行了任何更改并导航到其他页面并且想要回到之前的URL,它应该刷新页面并从DB而不是缓存中获取新的更新内容。此问题仅适用于Chrome,也可能在Safari 5中。history.back()显示Chrome的问题

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

请帮助

+1

检查“位置”的对象,你会发现如何访问URL字符串的不同部分。 还有“location.assign(字符串url)”,你可以使用它强制刷新。 – zvona

+0

你可以在javascript中使用location.hash来获得#navigate。 –

回答

1

您可以:

  1. 禁用文件高速缓存,setting no-cache。 (也可以在后端更改文件头,但我不知道你使用的是什么后端。)
  2. 您可以使用setInterval来验证window.location.hash并发出回调。
    • Backbone.js在路由器可能会帮助你。
    • Sammy.js也是一个很好的选择!
    • 您可以谷歌其他pushState库。
  3. 可以保存在一个变量的页面内容时,一些内容被xhr需要申请安全性的变化,你改变它的内容,因此,如果用户使用历史回来,DOM将在构建的DOM参考内存元素树和页面已在此处更改。 (我没有测试过这个,但理论上它可以工作,因为你只是引用你浏览器用来填充DOM的实例)。

希望这有助于你,但你给的信息,我不能走的更远......在Chrome控制台