2011-04-29 92 views
3

任何人都可以告訴我爲什麼JavaScript塊並行下載?爲什麼javascript阻止並行下載?

由於

+3

你能否澄清下載被阻止的內容? – 2011-04-29 10:31:42

+0

在YSlow他們提到,我們必須把JavaScript放在最底部,因爲JavaScript塊並行下載.. – poorani 2011-04-29 10:38:03

+0

JavaScript阻止所有其他下載,直到它完成。投票重新開放,因爲它是一個偉大的問題 – 2011-05-24 23:26:04

回答

-1

引用從YSlow

引起腳本的問題是 它們阻斷並行下載。 HTTP/1.1規範建議, 瀏覽器按每個主機名並行下載不多於兩個的 組件。 如果您通過多個 主機名提供圖片,則可以同時發生兩個以上的下載 。雖然 腳本正在下載,但是, 瀏覽器不會啓動任何其他 下載,即使在不同的 主機名上。

+0

亞..我知道..我的問題是爲什麼瀏覽器不啓動任何其他下載時,腳本正在下載? – poorani 2011-04-29 10:48:45

4

如果JavaScript有此代碼...

document.write('Hello from 1998'); 

...這將需要修改DOM 到位並做到這一點,它加載任何事情之前。

因此,瀏覽器在繼續前等待腳本下載。

Further reading感謝Joeri Sebrechts

+1

http://blogs.sitepoint.com/non-blocking-async-defer/包含解釋和解決方案 – 2011-04-29 11:05:38

+0

@Joeri真棒,謝謝你! – alex 2011-04-29 11:08:02

+0

+1進一步閱讀指針:) – nepsdotin 2012-01-01 01:56:17

1

瀏覽器必須下載資源列表。該列表由標記指定。資源可以是圖像,CSS文件,JS文件... JS文件以外的資源可以並行下載,即使它們來自同一個域。

JS文件被順序下載,以保證按照dom中出現的順序執行的順序。他們也阻止其他資源的下載,因爲js可以操縱dom。

現代瀏覽器並行下載JS文件以增強下載過程。但是他們也按照dom中出現的順序來解釋和執行JS。