document.ready和onload的区别——JavaScript文档加载完成事件
页面加载完成有两种事件:
一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件);
二是onload,指示页面包含图片等文件在内的所有元素都加载完成。
1、Dom Ready
用jQ的人很多人都是这么开始写脚本的:
$(function(){
// do something
});
例如:
$(function() {
$("a").click(function() {
alert("Hello world!");
});})
这个例子就是给所有的a标签 绑定了一个click事件。即当所有链接被鼠标单击的时候,都执行 alert("Hello World!");
(自己的理解)也就是说页面加载时绑定,真正该触发时触发。
其实这个就是jq ready()的简写,他等价于:
$(document).ready(function(){
//do something
})
或者下面这个方法,jQuer的默认参数是:“document”;
$().ready(function(){
//do something
})
这个就是jq ready()的方法就是Dom Ready,他的作用或者意义就是:在DOM加载完成后就可以可以对DOM进行操作。
一般情况一个页面响应加载的顺序是,域名解析-加载html-加载js和css-加载图片等其他信息。
那么Dom Ready应该在“加载js和css”和“加载图片等其他信息”之间,就可以操作Dom了。
2、Dom Load
用原生的js的时候我们通常用onload时间来做一些事情,比如:
window.οnlοad=function(){
//do something
}
或者经常用到的图片,假设这个
document.getElementById("imgID").οnlοad=function(){
//do something
}
这种就是Dom Load,他的作用或者意义就是:在document文档加载完成后就可以可以对DOM进行操作,document文档包括了加载图片等其他信息。
那么Dom Load就是在页面响应加载的顺序中的“加载图片等其他信息”之后,就可以操作Dom了。
3.用个最常用的例子说明Dom Ready和Dom Load两者的区别Dom Ready是在dom加载完成后就可以直接对dom进行操作,比如一张图片只要<img>标签完成,不用等这个图片加载完成,就可以设置图片的宽高的属性或样式等;
Dom Load是在整个document文档(包括了加载图片等其他信息)加载完成后就可以直接对dom进行操作,比如一张图片要等这个图标加载完成之后才能设置图片的宽高的属性或样式等;
比如一个图片浏览的效果,通常如果图片尺寸很大的情况下,为了防止图片把页面撑开通常会限定图片的宽度或高度,如果是单张图片或者是多张规格比例统一的图片下我们可以直接在<img>上加个宽度或者高度的属性<img src=“img.jpg” alt=”码头的大照片” width=“100” height=“90”>,或者可以在css样式中加宽度或者高度的属性(推荐)。