> 文档中心 > js中window.onload和jq中read函数区别

js中window.onload和jq中read函数区别


一、JS中的window.onload

1.使用

该方法用于在网页加载完毕后立刻执行的操作,即当HTML文档加载完毕后,立刻执行某个方法。通常用于元素,在页面完全载入后(包括图片、css文件等等)执行脚本代码。

2.语法

//当只有一个要执行的函数时window.onload=fn//页面加载完毕后fn方法会被调用
//有多个要执行的函数时window.onload=function(){fn1()fn2()fn3()}//页面加载完毕后依次执行fn1、fn2、fn3

3.为什么要使用window.onload

JavaScript中的函数方法需要在HTML文档渲染完毕之后才可以使用,如果没有渲染完成,此时的DOM树是不完整的,这样在调用一些JavaScript代码时就可能报“undefined”错误。

例如:

            没有使用 window.onload() 测试#bg{    width:120px;    height:120px;    border:4px solid blue;}document.getElementById("bg").style.backgroundColor="#F00";    
//代码会抛出错误:Uncaught TypeError:Cannot read property 'style' of null//代码是顺序执行的,当执行到js里的语句时,还没有加载div对象//使用window.onload就可以正常运行

window.onload事件绑定事件处理函数,绑定的是一个匿名函数,也可以是一个具名函数。

二、jQuery 中的$(document).ready()

1.使用

        当DOM(文档对象模型)已经加载,并且页面(包括图像)已经完全呈现时,会发生ready事件。
由于该事件在文档就绪后发生,因此把所有其他的jQuery事件和函数置于该事件中是非常好的做法。
ready()函数规定当ready事件发生时执行的代码。
ready()函数仅能用于当前文档,因此无需选择器。

2.语法

//允许一下三种语法 function 是必需的,规定当文档加载后要运行的函数$(document).ready(function(){})$().ready(function(){})$(function)

三、区别

1.执行时间
window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

2.编写个数
window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个。
$(documrnt).ready()可以同时编写多个,并且都可以得到执行。

3.多个的执行结果
window.onload不能同时写多个,但是有多个时会执行,只是后执行的会将前一次执行的结果覆盖。
$(doucment).ready()可以有多个,并且执行后不会被覆盖。

4.简化写法
window.onload没有简化写法
$ (document).ready(function(){})可以简写成$ (function(){})
 

四、注意

1.ready()函数不应与一起使用。
2.$ (function(){})在window.onload执行前执行的,$(function(){})类似于原生 js 中的DOMContentLoaded事件。

五、DOM文档加载步骤

1.解析HTML结构
2.加载外部的脚本和样式文件
3.解析并执行脚本代码
4.执行$(function(){})内对应代码
5.加载图片等二进制资源
6.页面加载完毕,执行window.onload

热点资讯