【发布时间】:2023-03-31 07:52:01
【问题描述】:
如果我使用history.back() 按下按钮,会发生什么?
是否会从浏览器的本地历史记录或缓存中显示 HTML 内容,而无需浏览器向服务器请求?还是浏览器会根据浏览器历史中的URL向服务器请求?
【问题讨论】:
标签: html caching back browser-history
如果我使用history.back() 按下按钮,会发生什么?
是否会从浏览器的本地历史记录或缓存中显示 HTML 内容,而无需浏览器向服务器请求?还是浏览器会根据浏览器历史中的URL向服务器请求?
【问题讨论】:
标签: html caching back browser-history
这取决于浏览器。
history.back() 按钮的行为取决于浏览器制造商。
【讨论】:
在 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找到。
如果您尝试“返回”到的页面具有合适的缓存标头,它将从缓存而不是从服务器中获取。
【讨论】: