0

我正在使用 history.back(-1) 并且还尝试 history.go(-1) 转到上一个 URL,它成功地将我导航到上一个 URL,但在 Chrome 中它从缓存中获取内容,所以如果我通过ajax 并导航到其他页面并希望返回到以前的 URL,它应该刷新页面并从数据库而不是缓存中获取新的更新内容。此问题仅存在于 chrome 中,也可能存在于 Safari 5 中。

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

请帮忙

4

1 回答 1

1

你可以:

  1. 禁用文件缓存,设置 no-cache。(也可以在后端更改文件的标题,但我不知道您使用的是什么后端。)
  2. 您可以使用 asetInterval来验证window.location.hash并放置回调。
  3. 您可以将页面内容中的 DOM 引用保存在一个变量中,当某些内容xhr需要应用更改以确保安全时,您可以更改它的内容,因此如果用户使用历史记录,DOM 将在内存元素树中构建,并且页面此时已更改。(我没有对此进行测试,但理论上它可以工作,因为您只需参考浏览器用来填充 DOM 的实例)。

希望这对您有所帮助,但是根据您提供的信息,我无法再进一步...

于 2013-01-08T07:29:18.313 回答