当执行进入页面时 JavaScript history.back() 函数是否生成 HttpRequest?

When into a page is performed the JavaScript history.back() function is generate an HttpRequest or not?

我是JavaScript的新手,有以下疑问。

进入一个页面我找到这个link返回上一页:

<a href="javascript:history.back()"><span class="glyphicon glyphicon-menu-left"></span> Indietro</a>

我的疑问是:

它工作正常(返回到上一页)但在我看来 javascript:history.back() 没有生成 HTTP 请求,因为:

  1. 如果我打开 FireBug 中的 Network 选项卡,我看不到没有生成的请求这里。

  2. 我正在开发 Spring MVC 应用程序,当我单击此处时,没有处理请求的控制器方法。

这是真的还是我遗漏了什么?它是如何工作的?我错过了什么?

history.back() 方法只是利用浏览器的本机后退按钮功能。因此它不会生成 HTML 请求。但是,您可以通过在页面上创建后退按钮并监听 onClick() 事件来跟踪这一点。调用事件后,调用 ajax 请求某个后端端点记录事件,然后在成功时调用 history.back()

history.back() 通常能够从最近的缓存中加载页面,因此不会导致网络获取。根据我的经验,服务器不会检查更新的页面是否过期 header,过期是根据缓存中的内容进行检查。

常见的例外情况是,如果浏览器可以判断页面或其某些内容已过期或不可缓存,或者页面是否已 POSTed,或使用URI.

由于这是浏览器 built-in,此行为可能因浏览器而异,并且将来可能会发生变化。