DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 淺析document.ready和window.onload的區別講解
淺析document.ready和window.onload的區別講解
編輯:JavaScript基礎知識     

Javascript 只有在DOM元素已經定義以後才可以對其執行某種操作,這個問題在“javascript執行順序裡”http://www.jb51.net/article/44577.htm一文裡有詳細介紹。

jQuery使用document.ready來保證所要執行的代碼是在DOM元素被加載完成的情況下執行。比如在"jQuery基礎 - 如何開始"一文裡,我用到如下jQuery代碼:
復制代碼 代碼如下:
<!--   $(document).ready(function ()

         {  

          alert("我的第一個jQuery代碼!");  

         });  
// -->

這段代碼的意思是:當Dom Tree加載完成後,顯示警告信息。

document.ready()和傳統的方法<body onload=”load()”> 相似,不同的是onload()的方法是在頁面加載完成後才發生,這包括DOM元素和其他頁面元素(例如圖片)的加載,

因此,使用document.ready()方法的執行速度比onload()的方法要快。

最後要注意兩點(來自jQuery文檔):

1.確保在 <body> 元素的onload事件中沒有注冊函數,否則可能不會觸發$(document).ready()事件。(
我嘗試用下面的例子來演示這個情況,但是沒有成功,所以我想這種情況只是可能發生。)

復制代碼 代碼如下:
<html>
<head>
<title>My second jQuery</title>
<mce:script type="text/javascript" src="/js/jquery.js" mce_src="js/jquery.js"></mce:script>
<mce:script type="text/javascript">
<!-- //下面是load的函數含有jquery注冊函數$  
function load(){  $("p").append("<b>Hello</b>"); }  
//下面是jQuery的代碼  
$(document).ready(function ()
{ $("p").append("我的第一個jQuery代碼!"
); 
$("p").append("<b>Hello</b>");  });  // -->
</mce:script>
</head> 
<body onload="load()"> 
<h2>jQuery 簡單例子2</h2> 
<p>I would like to say: </p> 
</body>
</html> 

2.可以在同一個頁面中無限次地使用$(document).ready()事件。其中注冊的函數會按照(代碼中的)先後順序依次執行。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved