2015-10-19 210 views
1

現在我們很長一段時間都遇到過這個問題。谷歌Chrome瀏覽器加載了所有資源兩次,並出於某種原因在頁面上運行了所有腳本和所有內容。Google Chrome爲什麼會多次加載頁面和/或資源?

這可能不是因爲刷新或重定向,因爲開發者控制檯沒有清除/重置一半,如果有刷新或重新加載頁面的東西,那將發生無限的時間。

這也只發生在Google Chrome上。這使我們的Web應用程序真的非常慢,無法加載和使用。

我在這個問題上分享了一個答案(下面?),它出人意料地很難找到原因,錯誤本身降低了可能達到百分之百的性能。

回答

1

首先我們認爲這是一些古怪的緩存錯誤,在頁面加載過程中資源過期,但我們找不到任何支持該理論的東西。

那麼一些谷歌上搜索後,我發現這一點:https://codebuildplay.wordpress.com/2014/03/06/chrome-loads-page-twice-sitecore-dms-gets-faulty-usage-data/

他們發現,如果有與src = ""元件或類似url('') CSS規則,這將導致谷歌Chrome瀏覽器認爲,SRC或URL指向的網站根路徑,並因此導致頁面及其所有資源被加載到那裏。

對我們來說,這是並非如此。我們有一個url = "#"這個相同問題的「擴展版本」,這似乎與url = ""相同。因此,在url或src中有一個#也會產生這個錯誤。

通過觀察開發者控制檯的網絡視圖並尋找取消的index.php/index.html /類似資源,可以發現此問題的根源。請求資源的行號應該告訴你哪裏有錯誤的src屬性。如果問題存在於css url規則中,我認爲這不起作用。

我也寫了一個小腳本,這可能有助於找出有錯誤的網址或索馬里紅新月元素:https://gist.github.com/ahvonenj/8e2eef80590e200dd297

我希望這可以幫助任何人遇到這樣真的很煩人,性能衝倒問題。

+0

這裏的問題測試是不是瀏覽器,但不正確的標記。你不應該在任何地方有空的'src'屬性,或者只有'#'。不知道爲什麼當它做它應該的時候,試圖責怪瀏覽器。 – Archer

+0

被引用的文章是18個月大,而Chrome並沒有表現出「問題」中描述的行爲 –

+0

@Archer只有Chrome做到了這一點。我真的沒有看到爲什麼空url或src的默認行爲應該是將其理解爲網站根路徑並因此嘗試再次加載整個網站,導致雙重或更多請求並使所有腳本運行的原因多次。 – Piwwoli

0

在我的案例中,通過將有效的圖標鏈接到下面的href來解決問題,雖然我在我的html中有一些其他的空href/src(它正在開發中)。
在Chrome Android和桌面版56.0

<link rel="icon" href=""> 
相關問題