MS Edge:打开开发者工具面板导致所有 http 请求发生两次

MS Edge: Opening the developer tools panel causes all http requests to occur twice

使用带 php 的 MS Edge 和 apache,我刚刚通过 access.log 发现当我打开 JavaScript 调试面板(即开发人员面板)时,它使每个http调用两次。当我关闭这个面板时,它已经解决了所有插入语句被调用两次的问题。

问题:http 调用的翻倍是否发生在我需要注意的每个/大多数浏览器上,或者这是 special/unique 与 MS Edge 相关的问题?

我不能代表所有浏览器和所有开发者工具。但是,对于 IE 和 Edge,当您第一次打开工具然后在源视图中打开 JS 文件时,它会再次尝试请求该文件。该请求将从本地浏览器缓存中提供,有时不是,具体取决于所请求文件的缓存设置。

浏览器工具需要发出此请求的原因是浏览器通常会丢弃原始源文件,因为它不需要它来执行页面,因为源已将其解析为它可以执行的其他内容一起工作。

但是,在您打开开发人员工具后,浏览器将在以后的导航中保留源代码,无论是在工具前端还是其他地方。不保留源代码是针对首次用例的优化,以节省浏览器在任何给定导航中使用该工具的可能性非常低的情况下保留源代码。

当然,有些文件永远不会被浏览器缓存,需要在工具请求时下载,例如源映射文件。

一般来说,您网站上任何可以通过 HTTP GET 访问的资源都应该是幂等的。也就是说,GET 不应更改所请求的资源(或一般站点的状态),因此希望发出额外的请求不成问题。