HTML缓存历史后退

6
如果我在按钮按下时使用 history.back(),会发生什么?
浏览器会从本地历史记录或缓存中显示HTML内容,而不需要向服务器发送请求。或者基于浏览器历史记录中的URL,浏览器会向服务器发送请求。请注意,这取决于浏览器如何实现history.back()方法。
3个回答

5
在JavaScript中调用"history.back()"与单击浏览器用户界面中的后退按钮相同(但是,如果当前查看的位置包含帧并且已导航到这些帧,则可能会有轻微差异,如果您很苛刻)。
至于结果是来自服务器还是“缓存”:由用户代理(浏览器)决定。规范(RFC 2616第13.13节,http://256stuff.com/gray/docs/rfc2616/13.html#13.13)说:
引用: 历史机制和缓存是不同的。特别是历史机制不应尝试显示资源当前状态的语义透明视图。相反,历史机制旨在显示当检索资源时用户看到的内容。
然而,用户代理实现质量有所不同。例如,Mozilla / Firefox的相关元缺陷可以在https://bugzilla.mozilla.org/show_bug.cgi?id=288462找到。
如果您试图“返回”的页面具有适当的缓存头,则它将从缓存中获取而不是从服务器中获取。

0

history.go(-1) 做的事情完全相同,在所有浏览器中都是一样的...

if (!defined('MODULE_FILE')) 
{ 
  $back = "<script>history.go(-1);</script>";
  print_r($back);   
}  

     

0

这取决于浏览器。

history.back() 按钮的行为取决于浏览器制造商。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接