由于最近Safari 5发布了,它导致我的网站出现一些问题。我有一个运行传统ASP的动态网站(尽管这应该不重要),并且该网站有一些创造性的历史堆栈使用。例如,您可以在列出产品的页面上,然后查看有关产品的详细信息并更改产品(admin-view)。当您点击产品上的保存时,信息将通过AJAX发送到服务器,并发出history.back()
。这在所有浏览器(包括safari < = 4)都很好,但是,在新发布的safari 5中,它停止工作。看起来,当您在Safari 5中单击时,它实际上并未刷新页面,它只会从缓存中加载它,这意味着不会显示在详细信息视图中所做的更改。我如何才能在safari 5中完成这项工作?这是当前的代码,我不得不关闭缓存(包括在每一个页面的顶部):防止Safari 5中的后退按钮上的缓存
Dim pStr
pStr = "private, no-cache, no-store, must-revalidate"
Response.AddHeader "pragma","no-cache" '?
Response.AddHeader "cache-control", pStr '? Er ikke sikker på om disse 3 siste er nødvendige.
Response.AddHeader "cache-control", "post-check=0, pre-check=0" '? Er ikke sikker på om disse 3 siste er nødvendige.
Response.AddHeader "Expires", "Mon, 26 Jul 1997 05:00:00 GMT" '?
Response.AddHeader "Last-Modified", Now()
伟大的修复 - 确认从iOS 6(iPhone和iPad)开始工作!谢谢Mika! – Jesse 2013-04-07 12:15:36
这也适用于Safari 6,桌面。 window.onunload的旧黑客不再一贯地工作 - 现在应该被认为是“正确的”答案。 – 2013-06-06 20:34:06
这适用于iPad。不幸的是(至少对我而言),当它从睡眠模式唤醒时,它有重新加载页面的副作用。如果用户做了一堆表单元素的更改导致各种显示更改,用户必须重新开始。有没有办法重新加载页面只有从后退按钮,但不是如果醒来? – 2013-10-16 20:37:14