为什么Google Chrome会多次加载页面和/或资源?

时间:2015-10-19 13:09:20

标签: javascript css image google-chrome

我们的网络应用程序已经存在很长时间了。谷歌浏览器加载了所有资源两次,并出于某种原因两次运行页面上的所有脚本和所有内容。

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

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

我正在为这个问题分享一个答案(下面?),因为找到原因并且错误本身可能会降低性能可能达到数百%。

2 个答案:

答案 0 :(得分:1)

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

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

他们发现,如果有src = ""或css-rules(如url('')的元素,则会导致Google Chrome认为src或url引用网站的根路径,从而导致页面,其中包含要加载的所有资源。

对我们而言,情况并非如此。我们通过url = "#"获得了同一问题的“扩展版本”,这似乎与url = ""相同。因此,在url或src中有#也会产生此错误。

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

我还写了一个小脚本,可能有助于查明有错误网址或srcs的元素:https://gist.github.com/ahvonenj/8e2eef80590e200dd297

我希望这可以帮助遇到这个真正令人讨厌的性能破坏问题的人。

答案 1 :(得分:0)

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

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