document.ready和onload的区别

来源:互联网 发布:光猫端口1.2同时连接 编辑:程序博客网 时间:2024/05/21 04:19

页面加载完成的两个事件:

  • ready,文档结构加载完成(不包含图片等非文字媒体文件)。
  • onload,指页面包含图片等文件在内的所有元素都加载完成。

  • Dom Ready
$(function(){    //do something});//或者$().ready(function(){    //do something});
  • Dom Load
//使用jswindow.onload=function(){    //do something}//或者经常用到的图片document.getElementById("imgId").onload=function(){    //do something}

用个最常用的例子说明Dom Ready和Dom Load两者的区别


  • Dom Ready是在dom加载完成后就可以直接对dom进行操作,比如一张图片只要标签完成,不用等这个图片加载完成,就可以设置图片的宽高的属性或样式等。
  • Dom Load是在整个document文档(包括了加载图片等其他信息)加载完成后就可以直接对dom进行操作,比如一张图片要等这个图标加载完成之后才能设置图片的宽高的属性或样式等。

比如一个图片浏览的效果,通常如果图片尺寸很大的情况下,为了防止图片把页面撑开通常会限定图片的宽度或高度,如果是单张图片或者是多张规格比例统一的图片下我们可以直接在上加个宽度或者高度的属性”码头的大照片”,或者可以在css样式中加宽度或者高度的属性(推荐)。但是如果这些张规格比例不统一的图片要浏览呢?那就有问题,你设置宽高很可能造成图片严重失真。在ie6之后ie7,ie8还有其他主流浏览器支持css2.1中min-width,max-width,min-height,max-width,这样我们就可以用min-width,max-width,min-height,max-width解决这些问题,但是ie6除非是抛弃性能问题用css表达式(当然old9(http://old9.blogsome.com/2008/10/26/css-expression-reloaded/)和怿飞(http://www.planabc.net/2009/09/21/optimization_of_css_eexpression/)有关于css表达式性能问题的解决方案,大家可以看一下)。这个时候ie的最好解决方案就是用Dom Ready而不是Dom Load,因为通常大图片加载的时候会一点一点的加载,这个在尺寸大,字节多,网速慢的时候表现的非常明显,用Dom Load,通常是先把页面撑开,加载完成后再把图片重设宽高,图片加载多少时间,这个页面就会撑开多久,用户会非常难受!!

0 0
原创粉丝点击