浅析document.ready和window.onload的区别讲解

2019-12-24,,,

Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作,这个问题在“javascript执行顺序里”//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()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

您可能感兴趣的文章:

  • JavaScript window.document的属性、方法和事件小结
  • 一张表格告诉你windows.onload()与$(document).ready()的区别
  • jQuery中使用了document和window哪些属性和方法小结
  • 浅谈$(document)和$(window)的区别
  • JavaScript的document对象和window对象详解
  • javascript Window及document对象详细整理
  • 全面解析jQuery中的$(window)与$(document)的用法区别

《浅析document.ready和window.onload的区别讲解.doc》

下载本文的Word格式文档,以方便收藏与打印。