淺析document.ready和window.onload的區別

來源:互聯網
上載者:User

淺析document.ready和window.onload的區別

 這篇文章主要介紹了document.ready和window.onload的區別,有需要的朋友可以參考一下

Javascript 只有在DOM元素已經定義以後才可以對其執行某種操作。

 

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()事件。其中註冊的函數會按照(代碼中的)先後順序依次執行。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.