谈谈document.ready和window.onload的区别
在Jquery里面,我們可以看到兩種寫法:$(function(){}) 和$(document).ready(function(){})
這兩個(gè)方法的效果都是一樣的,都是在dom文檔樹加載完之后執(zhí)行一個(gè)函數(shù)(注意,這里面的文檔樹加載完不代表全部文件加載完)。
而window.onload是在dom文檔樹加載完和所有文件加載完之后執(zhí)行一個(gè)函數(shù)。也就是說$(document).ready要比window.onload先執(zhí)行。
那么Jquery里面$(document).ready函數(shù)的內(nèi)部是怎么實(shí)現(xiàn)的呢?下面我們就來看看:
我們來為document添加一個(gè)ready函數(shù):
?
document.ready = function (callback) {///兼容FF,Googleif (document.addEventListener) {document.addEventListener('DOMContentLoaded', function () {document.removeEventListener('DOMContentLoaded', arguments.callee, false);callback();}, false)}//兼容IEelse if (document.attachEvent) {document.attachEvent('onreadytstatechange', function () {???? if (document.readyState == "complete") {document.detachEvent("onreadystatechange", arguments.callee);callback();}})}else if (document.lastChild == document.body) {callback();}}document.ready這個(gè)函數(shù)是實(shí)現(xiàn)了。我們?cè)賮眚?yàn)證一下最上面所說的“ready要比onload先執(zhí)行”:
window.onload = function () {alert('onload');};document.ready(function () {alert('ready');});執(zhí)行這段代碼之后,你會(huì)看到瀏覽器里面會(huì)先彈出“ready”,在彈出onload。
這個(gè)大家還是親手試試吧!
?
現(xiàn)在ready和onload的區(qū)別講完了,后續(xù)會(huì)繼續(xù)更新新東西。
排版好像不是很好,大家有好排版的方法可以說一下。
總結(jié)
以上是生活随笔為你收集整理的谈谈document.ready和window.onload的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js运动动画的八个知识点
- 下一篇: android分析windowManag