頁面加載完成有兩種事件,一是ready,表示文檔結構已經加載完成(不包含圖片等非文字媒體文件),css
二是onload,指示頁面包含圖片等文件在內的全部元素都加載完成。html
使用jQuery都是這樣開始寫腳本的jquery
$(document).ready(function(){ //do something })其實它等價於:
$().ready(function(){ //do })
$(function(){ //do })
通常狀況先一個頁面響應加載的順序是,域名解析-加載html-加載js和css-加載圖片等其餘信息瀏覽器
那麼Dom Ready應該在「加載js和css」和「加載圖片等其餘信息」之間,就能夠操做Dom了。
用原生的js咱們一般使用onload 如:spa
window.onload=function(){ alert("window.onload"); }
那麼Dom Load就是在頁面響應加載的順序中的「加載圖片等其餘信息」以後,就能夠操做Dom了。
.net
window.onload方法是在網頁中的全部的元素(包括元素的全部關聯文件)都徹底加載到瀏覽器以後才執行。
code
這種方式有一個很大的優勢:不用考慮DOM元素加載的順序。
xml
而經過jQuery中的$(document).ready()方法註冊的事件處理程序,只要在DOM徹底就緒時,就能夠調用了,好比一張圖片只要標籤完成,htm
不用等這個圖片加載完成,就能夠設置圖片的寬高的屬性或樣式等。
blog
這種方式優於onload()事件在於:$(document).ready()能夠在頁面沒有徹底下載時,操做頁面的DOM元素.
window.onload不能同時編寫多個,若是有多個window.onload方法,只會執行一個 而且後者覆蓋前者
$(document).ready()能夠同時編寫多個,而且均可以獲得執行 按順序執行
$(document).ready()優先於window.onload執行