onload事件和ready方法的區別
阿新 • • 發佈:2019-02-18
$(document).ready()和window.onload在表面上看都是頁面載入時我們就去執行一個函式或動作,但是在
具體的細節上$(document) ready()和window onload還是有區別的。
1.執行時間
window.onload必須等到頁面內包括圖片的所有元素載入完畢後才能執行。
$(document).ready()是DOM結構繪製完畢後就執行,不必等到載入完畢。
可以這樣理解記憶:Document物件是Window物件的一個屬性,所以Window物件所需載入的時間比Document物件要長。
2.編寫個數不同
window.onload不能同時編寫多個,如果有多個window.onload方法,只會執行一個 (因為一個物件)
$(document).ready()可以同時編寫多個,並且都可以得到執行
舉個例子:我們需要為body新增一個<h1>元素,要等到所有的頁面資源載入完畢後才能執行程式碼,這樣我們就要利用DOM的window.onload事件,而不能使用ready()方法。
如下所示:
$(window).onload(function(){
$('body').append('<h1>hello world</h1>');
});
它們還有以下形式的變化:
window.onload == $("window").load(function(){});
$(document).ready(function(){}) == $(function(){});