OnLoad & DOMReady

window.onload 事件会在页面或图像加载完成后立即触发(即所有元素的资源都下载完毕)。如果页面上有许多图片、音乐或falsh,onload事件会迟迟无法触发。所以出现了DOM Ready事件. 此事件在DOM文档结构准备完毕后触发, 即在资源加载前触发。

DOMContentLoaded 事件在许多Webkit浏览器以及IE9上都可以使用, 此事件会在DOM文档准备好以后触发, 包含在HTML5标准中. 对于支持此事件的浏览器, 直接使用DOMContentLoaded事件是最简单最好的选择。IE6,7,8都不支持DOMContentLoaded事件.所以目前所有的hack方法都是为了让IE6,7,8支持DOM Ready事件。

DOMContentLoaded事件比onload事件快许多,它是在DOM准备完毕后触发

document.addEventListener(‘DOMContentLoaded‘, function(){

alert("DOM准备完毕!")

}, false);

//jQuery在DOM加载完成后就可以可以对DOM进行操作

$(document).ready(function(){

//do something

})

//在document文档加载完成后就可以可以对DOM进行操作,document文档包括了加载图片等其他信息。

window.onload=function(){

//do something

}

//或者经常用到的图片,假设这个

document.getElementById(“imgID”).onload=function(){

//do something

}

Dom Ready和Dom Load两者的区别

1、Dom Ready是在dom加载完成后就可以直接对dom进行操作,比如一张图片只要<img>标签完成,不用等这个图片加载完成,就可以设置图片的宽高的属性或样式等;

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

当页面图片尺寸不规则时控制展示大小,好解决方案就是用Dom Ready而不是Dom Load,因为通常大图片加载的时候会一点一点的加载,这个在尺寸大,字节多,网速慢的时候表现的非常明显,用Dom Load,通常是先把页面撑开,加载完成后再把图片重设宽高,图片加载多少时间,这个页面就会撑开多久,用户会非常难受!!

可以通过readyState的状态复写ready事件

附:

1、DomReady的一些实现方案

http://www.cnblogs.com/zhangziqiu/archive/2011/06/27/DOMReady.html

2、HTML DOM事件

http://www.runoob.com/jsref/dom-obj-event.html

时间: 2024-08-25 13:36:15

OnLoad & DOMReady的相关文章

原生domReady封装

核心思路: 标准浏览器(含IE9+)比较简单,直接监听DOMContentLoaded事件: 低版本的IE(IE678)两套机制: 1)尝试轮询document.documentElement.doScroll("left")是否报错,若报错则dom树结构未ready,否则dom ready: 2)监听document的onreadystatechange事件,判断document.readyState是否为"complete". 参考:http://javascr

给JS程序一个统一的入口

JS程序包含框架部分,和应用部分. 框架部分提供代码的组织作用,包括定义全局变量,定义命名空间方法等,和具体应用无关,每个页面都需要包含相同的框架,框架部分在每个页面都相同. 应用部分提供页面的逻辑功能. 1.要将应用部分的代码组织起来,给他们一个统一的入口.例如:将应用部分的代码放到函数init中 function init() { ...... } 2.需要在适当的时候调用这个入口函数,完成页面程序的初始化. 如果JS程序控制控制某个DOM节点,而改节点当时还没载入,程序就会报错. 因此,我

python学习之第二十天

做此项目前请先阅读 http://3060674.blog.51cto.com/3050674/1439129  项目实战之:网站用户访问质量分析监测分析项目开发 为什么做这个项目? 我想讲,当你身处一家上市公司,公司老板又创业明星,大家都认识他,用户一访问不了你的网站就会蛋疼的@你老板,即使是他自己在拉屎时不小心把网线扯掉了,想想老板的微博天天收到的都是你家网站挂了的消息时那种一脸黑线的感觉 吧.他想,我是花钱养了一堆废物么? 然后老板就把这些用户的投诉发给了你们技术老大,技术老大让你检测网站

5月面试题总结

HTML Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器用什么文档标准解析这个文档.DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现. (2).标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行.在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作. HTML5 为什么只需要写 <!DOCTYPE HTML&g

前段知识点

前端开发中79条不可忽视的知识点汇总 1.css禁用鼠标事件 .disabled { pointer-events: none; cursor: default; opacity: 0.6; } 2.get/post的理解和他们之间的区别 http 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信. HTTP 的工作方式是客户机与服务器之间的请求-应答协议. web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端. http方法: HEAD: 与 GET 相同,

jquery如何实现domReady和onload判断的

function ready(fn) { var completed = function() { if ( document.addEventListener ) { document.removeEventListener( "DOMContentLoaded", completed, false ); window.removeEventListener( "load", completed, false ); } else { document.detach

document.ready和onload的区别

转载地址:http://blog.csdn.net/zndxlxm/article/details/7404758 页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页面包含图片等文件在内的所有元素都加载完成. 用jQ的人很多人都是这么开始写脚本的:      $(function(){           // do something     });其实这个就是jq ready()的简写,他等价于:      $(docum

domReady方法(dom加载完成执行回调)

var domReady = function( fn ) { var isReady = false, ready = function(){ if(!isReady){ typeof fn === 'function' && fn.call(document); isReady = true; } }, DOMContentLoaded = function() { if ( document.addEventListener ) { document.removeEventListe

javascript之DOMReady

DOMReady实现策略    * 在页面的DOM树创建完成后(即HTML解析第一步完成)就触发,而无需等待其他资源的加载,即DOMReady实现策略    * 支持DOMContentLoaded事件的浏览器: 就使用DOMContentLoaded事件    * 不支持DOMContentLoaded事件的浏览器: 使用Hack兼容    * 通过IE中的document.documentElement.doScroll('left')来判断DOM树是否创建完毕 代码实现 function