2013-07-29 61 views
2

從我讀過,在外部JS文件,如參考使用「異步」:使用外部js文件的異步安全嗎?

<script scr="http://someCDN/bla.js" async /> 

可以提供最佳的性能。但是,這樣引用的腳本似乎也存在潛在的問題,以任何順序執行。但對於jQuery和jQueryUI(或任何基於jQuery的js文件),您需要先加載jQuery,然後再加載jQueryUI(或fancybox,或goMap或任何情況)。

因此:異步是一種挑逗,還是可以在這種情況下安全地使用它(引用jQuery及其託管在CDN上的spawn)?

回答

4

您可以安全使用async無關的腳本。但是如果你需要按順序加載它們(比如你的例子),你不能只把它們放在它們兩個上,並且希望最好的  —你會創建競爭條件。

我發現this article以各種方式加載腳本非常有用,FWIW。

+0

所以這聽起來像是因爲每個jQuery庫都依賴於jQuery本身,異步只是一個管道夢。 –

+1

@ClayShannon:只有當你分別加載它們。採用jQuery和所有插件(包括jQuery UI),合併和縮小它們,並將它們作爲單個文件提供是非常常見的。 –

+0

因此,這將阻止走CDN路線,或者有沒有辦法做到這一點...可能不是,因爲jQueryUI是特定於開發人員的(取決於您選擇的下載內容) - 除非您採用整個jQueryUI shebang。 .. –