我们的网络应用程序已经存在很长时间了。谷歌浏览器加载了所有资源两次,并出于某种原因两次运行页面上的所有脚本和所有内容。
这可能不是因为某些刷新或重定向,因为开发人员控制台没有中途清除/重置,如果有更新或重新加载页面,那么这将发生无限次。
这也只发生在Google Chrome上。这使得我们的Web应用程序加载和使用真的很慢。
我正在为这个问题分享一个答案(下面?),因为找到原因并且错误本身可能会降低性能可能达到数百%。
答案 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="">