在JS中,若是但願在頁面加載完成後執行某些操做的話,通常的寫法以下:html
window.onload = function(){// some thing to do};瀏覽器
但 是,onload函數的執行並非咱們一般所理解的瀏覽器構建完html頁面對應的DOM樹後馬上執行,而是要等到頁面中所引用的圖片等外部資源 徹底下載完成後而且在瀏覽器中顯示才執行,也就是說,若是頁面中包括不少圖片或者圖片很大時將致使onload函數執行時間會被推遲好久,頁面中基於 onload的特效或者其它相關內容將並不馬上可用,致使用戶體驗差。函數
JQUERY的提供了一個本身的相似onload方式,經過該方法實現的頁面加載後 執行函數將在瀏覽器構建完DOM樹後馬上執行,而並不須要等待圖片等外部資源下載完成。spa
$(function(){//something to do}); (等同於寫法$(document).ready() 和 $().ready() )
htm
在$(document).ready()執行時,整個DOM文檔樹已經解析完成,即各個DOM元素都已經能夠訪問了(可是對於某些元素的某些屬性 此時訪問可能還不精確,如圖片的寬度高度)圖片
而window.onload會在整個文檔都加載完成後纔會執行,常見的就是對於頁面含不少圖片的狀況下,必須等到圖片都下載 下來後纔會執行。資源
而$(document).ready()不會,文檔
可是$(document).ready()中在訪問某些屬性是可能會遇到這種屬性尚未加載完成的狀況。io