關於$(document).ready():
jquery中的$(document).ready(),那$(document).ready()到底是什麼作用呢?是不是可以用window.onload = function(){ ... }來實現呢?
這裏,我們要明確二者之間的區別。
我們使用window.onload = function(){ ... },是希望在頁面被載入時執行function中的處理,但是這些JS代碼只有在頁面上的全部內容加載完成(包括頭部的banner廣告,所有圖片)的時候纔會執行。將window.onload放在最上邊的原因就是當你第一次運行codes的時候,HTML'document'還沒有加載完成。
而$(document).ready()卻不需要載入得這麼“完全”。$(document).ready()是在DOM結構載入完後執行的,而 window.onloal是得在所有文件都加載完後執行的,注意區別,一個是DOM加載完,一個是所有文件加載完。因此,ready肯定在onload 之前發生,頁面加載大或者多的圖片而使onload執行延後,使用jquery的ready可緩解此問題。
我們應該緊記,jquery的ready是指在頁面的DOM模型加載完後執行指定的函數。之所以經常用$(document).ready()來取代 window.onload,就是因爲它是在dom模型加載完成後就執行,而window.onload是在dom元素加載完全後才執行。
B.關於document.onload和window.onload:
document.onload和window.onload沒有本質的區別,都是指頁面載入完成後執行指定函數。
來源:http://hi.baidu.com/xiaowawa125/blog/item/69ca5bf808fdf708d8f9fd2c.html
做一個比較吧:
window .onload =function (){alert ("welcome");}
$(document).ready(
function (){
alert ("thanks for visiting!");
}
);
運行後你會發現 $(document).ready()先執行。
這裏有篇文章專門討論: Application Events 文章標題ASP.NET AJAX In-Depth: Application Events
http://www.stephenwalther.com/blog/archive/2008/03/07/asp-net-ajax-in-depth-application-events.aspx