1. 程式人生 > >$(document).ready(function(){...})和$(document).load(function(){...})的區別

$(document).ready(function(){...})和$(document).load(function(){...})的區別

1. 概述

大家在敲jQuery程式碼的時候經常會用到$(document).ready(function(){...})和$(document).load(function(){...}),它們到底有什麼區別呢?

2.DOM文件載入的步驟:

(1) 解析HTML結構。
(2) 載入外部指令碼和樣式表文件。
(3) 解析並執行指令碼程式碼。
(4) 構造HTML DOM模型。//ready
(5) 載入圖片等外部檔案。
(6) 頁面載入完畢。//load

3.執行順序

從DOM文件載入的步驟中可以明顯的看出,ready在第(4)步完成之後就執行了。但是load要在第(6)步完成之後才執行。
因此ready先執行,load後執行

4.應用情形

ready事件在DOM結構繪製完成之後就繪執行。這樣能確保就算有大量的媒體檔案沒加載出來,JS程式碼一樣可以執行。load事件必須等到網頁中所有內容全部載入完畢之後才被執行。如果一個網頁中有大量的圖片的話,則就會出現這種情況:網頁文件已經呈現出來,但由於網頁資料還沒有完全載入完畢,導致load事件不能夠即時被觸發。
其實如果頁面中要是沒有圖片之類的媒體檔案的話ready與load是差不多的,但是頁面中有檔案就不一樣了,所以還是推薦大家在工作中用ready。