一、window.onload與onload屬性:
假設已經定義了這樣一個函數:
function doSomething(){
//do something...
}
既可以在html標記中指定該函數:<body οnlοad="doSomething()"></body>
也可以在JavaScript中使用該函數:window.οnlοad=doSomething;
二者都會在頁面加載完成時執行該函數,但是JavaScript中使用該方式的優點在於使行爲更清晰的從標記中分離開來。
Tips1:.頁面加載完成,指的是HTML下載完成並解析成DOM樹,同時所有相關聯的文檔也下載完成。
Tips2:將函數指定爲處理程序時,省略了後面的圓括號,至使用了函數名。如果帶着圓括號,則函數會被立即調用;沒有圓括號,函數名只是函數的標識符,用於在將來調用函數。
二、$(document).ready()與window.onload
1.所屬語言不同
window.onload:是JavaScript中的方法;
$(document).ready():是jQuery中的方法;
2.執行時間不同
window.onload:HTML下載完成並解析成DOM樹,同時所有相關聯的文檔也下載完成後才能執行。
$(document).ready():HTML下載完成並解析成DOM樹(DOM結構繪製完畢)後就執行,不必等到所有相關聯的文檔加載完畢。
3.執行函數個數不同
window.onload:不能同時執行多個函數,如果有多個window.onload方法,只會執行最後一個,因爲後者會向前覆蓋;
$(document).ready():可以同時指定多個函數,並且這些函數會按照註冊的順序依次執行。
4.簡化寫法
window.onload:沒有簡化寫法
$(document).ready(function(){}):可以簡寫成$(function(){});