2013-11-03 49 views
3

我創建一個腳本元素(document.createElement('script') ....)我通過設置其異步屬性:x.async=true腳本的異步屬性&& document.ready?

這意味着腳本未阻止和彼此之間的執行順序 - 不保留(相對於defer(也等待DOM加載。))

問:

但如果我設置異步屬性 - 這是否意味着我必須使用的document.ready?因爲我可以運行在腳本文件中聲明的將來下載的方法 - 因此錯誤

+0

如果你有腳本相互依賴,爲什麼你使用async? – JJJ

+0

@Juhana因爲如果我正在編寫第三方JavaScript代碼(小工具) - 我不想用同步腳本阻止發佈商網站。 –

回答

2

根據個人經驗,最好在async腳本文件中使用文檔就緒或窗口加載以保證安全。

這是因爲在第一次加載之後,JavaScript文件將被瀏覽器緩存,並且根據瀏覽器/情況,可以從緩存中加載並在DOM準備好之前嘗試執行。