window.onload和$(document).ready()都是頁面加載時我們就去執(zhí)行一個函數(shù)或者動作,具體細節(jié)上還是有區(qū)別的。
- 最基本區(qū)別:
1.執(zhí)行時間
window.onload必須等到頁面內(nèi)包括圖片的所有元素加載完畢后再去執(zhí)行。$(document).ready()時DOM結(jié)構(gòu)回執(zhí)完畢后就執(zhí)行,不必等到加載完畢。window.onload方法是在網(wǎng)頁中所有的元素(包括元素的關聯(lián)文件)完全加載到瀏覽器后才執(zhí)行,即JavaScript此時才可以訪問網(wǎng)頁中的任何元素。而通過jQuery中的$(document).ready()方法注冊的事件處理程序,可以在DOM完全就緒時就可以被調(diào)用。此時,網(wǎng)頁的所有元素對jQuery而言都是可以訪問的,但是,這并不意味著這些元素關聯(lián)的文件都已經(jīng)下載完畢。
2.編寫個數(shù)不同
window.onload不可同時編寫多個,如果有多個window.onload方法,只會執(zhí)行一個$(document).ready()可以同時編寫多個,并且可以得到執(zhí)行。
3.簡化寫法
window.onload沒有簡化寫法$(document).ready(function(){})可以簡寫成$(function(){})或$(document).ready()方法,window.onload方法有相似的功能,但是在執(zhí)行時機方面是有區(qū)別的。