2013-04-12 169 views
3

我最近看到一些網站使用這種模式:Document.ready澄清?

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 

    <script> 
    $(function(){...do some stuff with plugins...}); 
    </script> 

</head> 
<body> 


    <script src="myplugin1.js"></script> 
    <script src="myplugin2.js"></script> 
    <script src="myplugin3.js"></script> 
</body> 
</html> 

這讓我想起了一些陷阱:

提問#的插件後引發未執行1

document.ready事件( JS)已被解析。

它在dom 結構完成時執行。 (聲明:我沒有說:「當所有的資源已經下載」!)

所以有可能是一種情況:document. ready功能將嘗試使用尚未完全下載一個插件變量。 (這會導致錯誤)。

我對不對?

問題2 這使我:「從來沒有使用的document.ready」 前的腳本引用的位置(我的意思是:在的document.ready依賴於那些腳本變量的情況下)。

我對不對?

p.s.我不是在談論window.load這顯然會在這裏工作,但我不得不等待更長時間。

+0

你爲什麼要把'

1

在現代瀏覽器中$(document).ready等同於DOMContentLoaded的事件(並且它在傳統瀏覽器中相當於相同的情景下可以回到其他一些情況)。

MDN總結它非常漂亮:當文檔已經 完全加載和分析

的DOMContentLoaded事件被觸發,而無需等待樣式表,圖片, 和子幀完成加載(負載可以將事件被用來檢測 一個滿載的頁面)。

所以你的腳本將總是被執行時解析。

+0

等....腳本不在這裏列表... –

+1

這就是要點。 – 2013-04-12 05:30:19

+0

哦.....愚蠢的我:-) –