document.ready和onload的區別——JavaScript文檔加載完成事件
頁面加載完成有兩種事件
一是ready,表示文檔結構已經加載完成(不包含圖片等非文字媒體文件)
二是onload,指示頁面包含圖片等文件在內的全部元素都加載完成。
用jQ的人不少人都是這麼開始寫腳本的:
$(function(){
// do something
});
其實這個就是jq ready()的簡寫,他等價於:
css
$(document).ready(function(){
//do something
})
//或者下面這個方法,jQuer的默認參數是:「document」;
html
$().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");函數
}htm
function two(){事件
alert("two");圖片
}ip
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