document.ready和window.onload的區別

頁面加載完成有兩種事件,一是ready,表示文檔結構已經加載完成(不包含圖片等非文字媒體文件),css

二是onload,指示頁面包含圖片等文件在內的全部元素都加載完成。html

使用jQuery都是這樣開始寫腳本的jquery

 

  1. $(document).ready(function(){
  2. //do something
  3. })
$(document).ready(function(){
         //do something
      })
其實它等價於:

 

 

  1. $().ready(function(){
  2. //do
  3. })
$().ready(function(){
		  //do
	  })

  1. $(function(){
  2. //do
  3. })
$(function(){
		  //do
      })

這個就是jquery ready()的方法就是Dom Ready,他的做用或者意義就是:在DOM加載完成後就能夠能夠對DOM進行操做。

 

通常狀況先一個頁面響應加載的順序是,域名解析-加載html-加載js和css-加載圖片等其餘信息瀏覽器

那麼Dom Ready應該在「加載js和css」和「加載圖片等其餘信息」之間,就能夠操做Dom了。

用原生的js咱們一般使用onload 如:spa

 

  1. window.onload=function(){
  2. alert("window.onload");
  3. }
window.onload=function(){
	      alert("window.onload");
	  }

這種就是Dom Load,他的做用或者意義就是:在document文檔加載完成後就能夠能夠對DOM進行操做,document文檔包括了加載圖片等其餘信息。

 

那麼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執行

相關文章
相關標籤/搜索