【问题标题】:Why is Google Chrome loading page and / or resources multiple times?为什么谷歌浏览器会多次加载页面和/或资源?
【发布时间】:2016-01-17 20:28:39
【问题描述】:

长期以来,我们的一个 Web 应用程序一直存在这个问题。由于某种原因,谷歌浏览器两次加载了所有资源并运行了所有脚本和页面上的所有内容。

这不可能是因为一些刷新或重定向,因为开发者控制台没有中途清除/重置,如果有什么刷新或重新加载页面,那么这将无限次发生。

这也只发生在 Google Chrome 上。这让我们的 Web 应用程序加载和使用起来真的很慢。

我正在分享这个问题的答案(如下?),因为它很难找到原因,而且这个错误本身可能会降低数百% 的性能。

【问题讨论】:

    标签: javascript css image google-chrome


    【解决方案1】:

    在我的情况下,通过将有效图标链接到下面的 href 解决了问题,尽管我的 html 中有一些其他空的 href / src(它正在开发中)。
    在 Chrome Android 和桌面版本 56.0 上测试

    <link rel="icon" href="">
    

    【讨论】:

      【解决方案2】:

      首先我们认为这是一些古怪的缓存错误,在页面加载期间资源以某种方式过期,但我们找不到任何支持该理论的东西。

      经过一番谷歌搜索后,我发现了这个:https://codebuildplay.wordpress.com/2014/03/06/chrome-loads-page-twice-sitecore-dms-gets-faulty-usage-data/

      他们发现如果有 src = ""url('') 之类的 css-rules 元素,它会导致谷歌浏览器认为 src 或 url 指的是网站根路径,因此导致页面及其所有要在那里加载的资源。

      对我们来说,过去和现在都不是这样。通过url = "#",我们有一个相同问题的“扩展版本”,它似乎与url = "" 相同。所以在 url 或 src 中有一个# 也会产生这个错误。

      通过查看开发者控制台的网络视图并查找已取消的 index.php / index.html / 类似资源,可以潜在地找到此问题的根源。请求此资源的行号应该告诉您在哪里有错误的 src 属性。如果问题存在于 css url 规则中,我认为这不起作用。

      我还编写了一个小脚本,可以帮助查明具有错误 url 或 src 的元素:https://gist.github.com/ahvonenj/8e2eef80590e200dd297

      我希望这对遇到这个非常烦人的性能破坏问题的人有所帮助。

      【讨论】:

      • 这里的问题不是浏览器,而是错误的标记。你不应该在任何地方都有空的src 属性,或者只有# 的属性。不知道你为什么在浏览器做了它应该做的事情时试图在这里责备它。
      • 被引用的文章是 18 个月大的,chrome 没有表现出“问题”中描述的行为
      • @Archer 只有 Chrome 可以这样做。我真的不明白为什么空 url 或 src 的默认行为应该将其理解为网站根路径,因此尝试在那里再次加载整个网站,导致双重或更多请求并使所有脚本运行多次。
      • 一个空的url相当于打开当前文件夹的默认文档。这就是 Chrome 正确这样做的原因。
      • @Archer 即使 Chrome 是否正确执行了它所做的事情,它仍然会导致问题。其他人也可能遇到的问题,因此也是问题和答案。
      猜你喜欢
      • 1970-01-01
      • 2011-01-01
      • 2014-03-27
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2015-04-05
      相关资源
      最近更新 更多