document.ready和onload的差別——JavaScript文檔加載完成事件
頁面加載完成有兩種事件
一是ready,表示文檔結構已經加載完成(不包含圖檔等非文字媒體檔案)
二是onload,訓示頁面包含圖檔等檔案在内的所有元素都加載完成。
用jQ的人很多人都是這麼開始寫腳本的:
$(function(){
// do something
});
其實這個就是jq ready()的簡寫,他等價于:
$(document).ready(function(){
//do something
})
//或者下面這個方法,jQuer的預設參數是:“document”;
$().ready(function(){
//do something
})
這個就是jq ready()的方法就是Dom Ready,他的作用或者意義就是:在DOM加載完成後就可以可以對DOM進行操作。
一般情況先一個頁面響應加載的順序是:域名解析-加載html-加載js和css-加載圖檔等其他資訊。
那麼Dom Ready應該在“加載js和css”和“加載圖檔等其他資訊”之間,就可以操作Dom了。
1.window.onload方法
⑴執行時機:
在網頁中所有元素(包括元素的所有關聯檔案)完全加載到浏覽器後才執行,即JavaScript 此時可以通路網頁中的所有元素。
window.onload=function(){ $(window).load(function(){
//編寫代碼 等價于 //編寫代碼
} });
⑵多次使用:
JavaScript的onload事件一次隻能儲存對一個函數的引用,他會自動用最後面的函數覆寫前面的函數。
function one(){
alert("one");
}
function two(){
alert("two");
}
window.onload=one;
window.onload=two;
//運作代碼後隻有 two
2.$(document).ready()方法
⑴執行時機:在DOM完全就緒時就可以被調用。(這并不意味着這些元素關聯的檔案都已經下載下傳完畢)
舉個例子:$(document).ready()方法明知要DOM就緒就可以操作了,不需要等待所有圖檔下載下傳完畢。
⑵多次使用:
function one(){
alert("one");
}
function two(){
alert("two");
}
$(document).ready(function(){
one();
});
$(document).ready(function(){
two();
});
//運作代碼後
//先是:one
//先是:two
【原文連結】:https://www.cnblogs.com/eric-qin/p/4325750.html