jQuery $(document).ready()和JavaScript onload事件詳解區別

jQuery $(document).ready()和window.onload

  根據ready()方法的API說明http://api.jquery.com/ready/html

  這個方法接收一個function類型的參數ready(handler), 方法的做用是: Specify a function to execute when the DOM is fully loaded.jquery

  即當DOM加載完畢的時候,執行這個指定的方法.api

  由於只有document的狀態ready以後,對page的操做纔是安全的.瀏覽器

  $(document).ready()僅在DOM準備好的時候執行一次.安全

 

  與之相比,load事件會等到頁面渲染完成執行,即等到全部的資源(好比圖片)都徹底加載完成的時候.測試

  $(window).load(function(){…})會等整個頁面,不單單是DOM,還包括圖像和iframes都準備好以後,再執行.spa

  而ready()是在DOM準備好以後就執行了,即DOM樹創建完成的時候.因此一般ready()是一個更好的時機.htm

 

  若是DOM初始化完成以後再調用ready()方法,傳入的新的handler將會當即執行.blog

 

  注意:ready()方法屢次調用,傳入的handler方法會串聯執行(追加).事件

  而JavaScript中,window.onload是賦值一個方法,即後面的會覆蓋掉前面的.


一系列測試結論 ,詳細看連接

結論:觸發前後次序

在Chrome中:

  ready()

  window.onload==document.body.onload

  <body onload=「">

 

在FireFox中:

  ready()

  window.onload==<body onload=「」>==document.body.onload

 

  此分析的結果跟瀏覽器,甚至瀏覽器版本相關,本文寫於2015.2.6

  Chrome Version: 40.0.2214.94

  FireFox Version: 35.0

轉發:http://www.cnblogs.com/mengdd/p/4276801.html

相關文章
相關標籤/搜索