$(document).ready() 、[removed]、onload屬性三者之間的區別

一、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(){});

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章