2012-08-25 82 views
12

我正在評估腳本加載優化的現有資源,但我參考了一些文章,如this,指的是舊版瀏覽器會阻止其他下載,直到完成此順序腳本加載階段。我檢查Modernizr(yepnope.js),headjs和ControlJs作爲候選人。但是,在現代瀏覽器中是否需要使用這個工具來並行腳本加載?現代瀏覽器是並行還是順序加載腳本?

+0

順序,如果不是做任何額外的加載JavaScript文件... –

+0

掛鉤https://stackoverflow.com/q/1795438/6 32951 – Pacerier

回答

17

我相信今天在默認情況下,大多數瀏覽器將實際負載並聯的腳本;但瀏覽器不會默認並行執行腳本。例如,在下面的代碼中,腳本將並行加載。在圖像中,我們可以看到Fast1.js和Fast2.js加載非常快,但是基於瀏覽器控制檯中的時間,Fast2.js在執行Fast1.js 3秒後執行。

此外,還有一點要記住的是,文件的順序可以有所作爲。 Backbone.js文件依賴於underscore.js文件。如果我們更改了這些文件的順序(其中bacbone.js位於underscore.js之前),則會引發錯誤。

<html > 
<head> 
    <title></title> 
    <script src="scripts/fast1.js" type="text/javascript"></script> 
    <script src="scripts/libs/jquery-1.8.3.js" type="text/javascript"></script> 
    <script src="scripts/libs/underscore.js" type="text/javascript"></script> 
    <script src="scripts/libs/backbone.js" type="text/javascript"></script> 
    <script src="scripts/fast2.js" type="text/javascript"></script> 
</head> 
<body> 
    Hello 
    <script type="text/javascript"> 
     console.log("html: " + Date()); 
    </script> 
    <img src="imgs/bImg.png" /> 
</body> 
</html> 

下面的代碼的JavaScript文件Fast1.js和Fast2.js

console.log("Fast 1: " + Date()) 

Script file loading in browser

對於腳本加載我用Require.js。它還提供了將代碼組織到單個文件中的模塊中的好處。

這裏有一個博客帖子我的瀏覽器的腳本加載創建:Browser Script Loading

這裏是腳本加載了幾篇文章:

+0

是否有HTML標準禁止瀏覽器並行執行下載的代碼? – Pacerier

相關問題