【问题标题】:MS Edge: Opening the developer tools panel causes all http requests to occur twiceMS Edge:打开开发者工具面板会导致所有 http 请求发生两次
【发布时间】:2019-03-06 07:16:58
【问题描述】:

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

问题:我需要注意的每一个/大多数浏览器上是否都会发生这种 HTTP 调用翻倍的情况,或者这是 MS Edge 的特殊/独特之处?

【问题讨论】:

  • 请尝试告知我们您当前使用的 MS Edge 的确切版本和操作系统版本。还要尝试告知可能产生问题的详细步骤。我们将尝试使用该版本进行测试以检查问题。感谢您的理解。

标签: apache browser microsoft-edge developer-tools


【解决方案1】:

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

浏览器工具需要发出此请求的原因是浏览器通常会丢弃原始源文件,因为它不需要它来执行页面,因为源已被解析为其他可以使用的东西.

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

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

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

【讨论】:

  • 感谢您的回答。我一直在使用 HTTP GET 将表单数据插入到我的数据库中,而我认为我应该将其切换为 POST。我不知道这是否会解决我在一次提交中插入两行的问题,但值得一试,您对如何获得多个调用的解释很有用。当我今晚晚些时候回到这个页面时,我将尝试将 `header("Cache-Control: no-cache") 添加到我的页面。假设可行,我很乐意将您的答案标记为我的问题的答案
猜你喜欢
  • 2014-01-15
  • 2012-12-24
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
相关资源
最近更新 更多