天天看點

document.ready和onload的差別

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

繼續閱讀