`
zhangdaiscott
  • 浏览: 410308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

document.ready和onload的区别——JavaScript文档加载完成事件

 
阅读更多

页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页面包含图片等文件在内的所有元素都加载完成。(可以说:ready 在onload 前加载!!!)

我的理解: 一般样式控制的,比如图片大小控制放在onload 里面加载;

而:jS事件触发的方法,可以在ready 里面加载;



用jQ的人很多人都是这么开始写脚本的:

$(function(){

// do something

});
其实这个就是jq ready()的简写,他等价于:

$(document).ready(function(){
//do something
})
//或者下面这个方法,jQuer的默认参数是:“document”;
$().ready(function(){
//do something
})

-----------------------------------------------------------------------------------------------------------------------------------------------

$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法
接触JQuery一般最先学到的是何时启动事件。在曾经很长一段时间里,在页面载入后引发的事件都被加载在”Body”的Onload事件里.
对于Body的Onload事件和JQuery的Ready方法相比,有很多弊端.比如:
1.加载多个函数的问题
<body onload="a();b();">
</body>
在Onload事件中只能这样加载,很丑陋…而在JQuery中你可以利用多个JQuery.Ready()方法,它们会按次序依次执行

2.代码和内容不分离
这个貌似不用说了,让人深恶痛绝-.-!!

3.执行先后顺序不同
对于Body.Onload事件,是在加载完所有页面内容才会触发,我的意思是所有内容,包括图片,flash等.如果页面的这些内容很多会让用户等待很长时间.
而对于$(document).ready()方法,这个方法只是在页面所有的DOM加载完毕后就会触发,无疑很大的加快了网页的速度.
但是对于一些特殊应用,比如图片的放大缩小,图片的剪裁。需要网页所有的内容加载完毕后才执行的呢?我推荐使用$(window).load()方法,这个方法会等到页面所有内容加载完毕后才会触发,并且同时又没有OnLoad事件的弊端.
<script type="text/javascript">
$(window).load(function() {
alert("hello");
});
$(window).load(function() {
alert("hello again");
});
</script>
上面的代码会在页面所有内容加载完成后按先后顺序依次执行.
当然不要忘了与之对应的Unload方法
$(window).unload(function() {
alert("good bye");
});
上面代码会在页面关闭时引发.
在所有DOM加载之前引发JS代码
这个方法是我在调试的时候最喜欢的,有时候开发的时候也用这种方法
<body>
<script type="text/javascript">
(function() {
alert("hi");
})(jQuery)
</script>
</body>
对,就是利用js闭包的形式将js代码嵌入body,这段代码会自动执行,当然也可以直接嵌入js代码,这种方式要注意顺序问题,如下:
<body>
<div id="test">this is the content</div>
<script type="text/javascript">

alert($("#test").html());//I Can display the content

</script>
</body>
<body>
<script type="text/javascript">

alert($("#test").html());//I Can't display the content

</script>
<div id="test">this is the content</div>
</body>
上面两段代码,第二段代码当中因为只能解释到当前代码之前的DOM,而test并不存在于已经解析的DOM数.所以第二段代码无法正确显示.

分享到:
评论

相关推荐

    全面解析jQuery $(document).ready()和JavaScript onload事件

    主要介绍了全面解析jQuery $(document).ready()和JavaScript onload事件的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

    一张表格告诉你windows.onload()与$(document).ready()的区别

    浏览器加载完DOM后,会通过javascript为DOM元素添加事件,在javascript中,通常使用[removed]()方法。 在jquery中,则使用$(document).ready()方法。下面介绍一下两者的区别。   [removed]() $(document).ready...

    js 某个页面监听事件渲染完毕的时间.pdf

    常见的方法有使用window.onload和jQuery的(document).ready两种。其中,window.onload方法是页面所有资源加载完成之后触发,因此性能较差;(document).ready方法是在页面dom元素加载完成之后触发,性能较好。 总体...

    窗口和表单事件.pptx

    1.1 ready事件 VS onload事件 1、窗口事件-resize事件 1.2 resize 事件 当调整浏览器窗口大小时,发生 resize 事件。 x=0; $(document).ready(function(){ $(window).resize(function(){ $("span").text(x+=1); });...

    jquery中的常用事件bind、hover、toggle等示例介绍

    $(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典型方式。它和onload具有类似的效果。但是也有一些差异: 当一个文档完全下载到浏览器中时,会触发[removed]事件。而使用$(document)...

    浅析$(function) ready和onload 的区别

    $(function(){ /*do some thing*/ }) = $(document).ready(function(){/* do some thing */}) = $().ready(function(){ /* do some thing */ });  上面是jquery中的东西,接着说下原生javascript中的,有

    jQuery中的常用事件总结

    1.$(document).ready() $(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典型方式。它和onload具有类似的效果。但是也有一些差异: 当一个文档完全下载到浏览器中时,会触发[removed]...

    初窥JQuery(二) 事件机制(1)

     一、页面加载$(document).ready()相当与Javascript中的onLoad()事件,都是在页面加载的时候执行该方法,但是两者又有着微妙的差别,ready()事件是当HTML下载完成并解析成DOM树之后就可以执行,而onLoad()事件要等...

    jQuery实例教程

    jQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之前执行。 (也许window.onload()能实现同样的功能,但是jQuery更加快速,灵活)。 $(document).ready(fn):当DOM...

    jQuery的文档处理程序详解

    所谓的文档处理程序,是指jQuery中提供的$(document).ready事件,此事件会在dom加载完毕后触发,而[removed]和body.onload都是在页面完全加载后触发。 jQuery文档处理程序介绍 在jQuery中想实现在DOM加载完毕后的...

    jqzoom放大镜插件.zip

    * JQZoom Evolution 1.0.1 - Javascript Image magnifier * * Copyright (c) Engineer Renzi Marco(www.mind-projects.it) * * $Date: 12-12-2008 * * ChangeLog: * * $License : GPL,so any change to ...

    jQuery中的read和JavaScript中的onload函数的区别

    这个函数的作用就是等待网页完全装载完了以后再去执行代码块内的语句,因为按照文档流的执行顺序,通常用于头部加载JavaScript的时候需要用到。 代码如下: [removed] = function(){  // 当网页加载完成后执行这里...

    图库新版jQuery焦点图 JS代码

    document.write('&lt;script type="text/javascript" &gt;BAIDU_CLB_SLOT_ID = "288992";&lt;/script&gt;'); document.write(ojs);} if (code=="top210x90_2"){ document.write('&lt;script type="text/javascript" &gt;BAIDU_CLB_SLOT...

    初始jQuery

    3. $(document).ready()与window.onload使用场合类似,当有差异 4. jQuery代码中常见的元素包括工厂函数、选择器和方法 5. jQuery程序代码的特殊:包含$符号和连缀操作 6. 每个页面都有对应的DOM模型,DOM模型包括...

    jquery插件使用方法大全

    attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进 1.5 美国时间1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期...

    img-ready:加载图像后执行回调

    加载图像后执行回调。 用法 安装 npm install img-ready 这个插件可以用作 AMD/CommonJS 模块。 否则,它将在全局对象 ( window ) 上公开imgReady方法。 var img = document . getElementById ( 'logo' ) ; var ...

    jQuery快速高效制作网页交互特效

    和onclick 在jQuery中常用的事件有文档就绪事件,对应的方法ready() $(document).ready(fn(){});  b:鼠标事件 常用的鼠标事件有:  click(fn); 单机鼠标时发生,fn表示绑定的函数  keydown(fn); 鼠标指针移...

    运用jQuery实现的Ajax无刷新删除和添加数据的表单

    ---DOM载入就绪可以查询及操纵时执行该操作|等同window.load,确保在body元素的onload事件中没有注册函数,否则不会触发$(document).ready()事件。  用到了一个JS脚本库,主要就是设置各个验证项的正则表达式,基本...

    my97日历控件

    if($.$preLoad&&$dp.status==0)E(Y,"onload",function(){U(null,true)});if(!Y[N].docMD){E(Y[N],"onmousedown",D,true);Y[N].docMD=true}if(!V[N].docMD){E(V[N],"onmousedown",D,true);V[N].docMD=true}E(Y,...

Global site tag (gtag.js) - Google Analytics