2016-08-22 106 views
1

我一直在試圖找到答案這一點,但再也找不到一個:腳本代碼加載iframe內

我有四個I幀加載父頁面上。這些I幀中的每一個都有要執行的JavaScript(每個JS中略有不同)。

目前,我已經捆綁所有的JS到一個文件,該文件是在每個幀的標籤。

我看到的行爲是瀏覽器發出只有一個請求到該腳本,因爲它是在每幀中的相同。

我的問題是:如果我想小束,通過拆分該JS文件到4個較小。腳本標記如何在iframe中加載?

如果他們加載異步:我可能會從中獲得一些性能。 如果他們一個接一個地加載:然後擁有更大的包並避免多次往返可能會更好。

回答

2

iframe幾乎和父頁一樣工作。想想它,就好像在瀏覽器中同時打開多個選項卡,每個選項都儘可能快地加載,而與其他頁面無關。

使用單一的大捆意味着,一旦完成任何IFRAME下載,瀏覽器會緩存它和其他所有的I幀請求,將負載從緩存更快。

採用較小的束意味着每個IFRAME可能完成加載更快,如果它是特定的腳本的其他I幀之前完成,但也不能保證他們會繼續完成訂單。他們都會嘗試異步加載它們各自的文件。

+0

由於4個iframe被同時追加,爲什麼我只看到一個請求發送到捆綁包? 我明白,如果這是第一次加載在iframe,然後在別人將它緩存,但如果它的異步,他們難道不就在同一時間讀取同一資產? 也許瀏覽器足夠聰明,可以看到當前正在提取某個特定的源代碼? – XuoriG

+1

瀏覽器檢查重複請求並自動合併它們。您可以通過製作一個頁面來加載來自同一個URL的多個大圖片進行測試。一旦發出一個請求,任何重複的URL將簡單地搭載在相同的資源上。 – Soviut