DOMContentLoaded和window.onload

DOMContentLoaded和window.onload

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

相信写js的。都知道window.onload吧,可是并非每一个人都知道DOMContentLoaded,事实上即使你不知道。非常有可能你也常常使用了这个东西。

普通情况下,DOMContentLoaded事件要在window.onload之前运行,当DOM树构建完毕的时候就会运行DOMContentLoaded事件,而window.onload是在页面载入完毕的时候,才运行。这当中包含图片等元素。大多数时候我们仅仅是想在DOM树构建完毕后,绑定事件到元素。我们并不须要图片元素。加上有时候载入外域图片的速度很缓慢。

我们能够写代码来简单測试一下这两种事件:

javascript代码(引入了jQuery1.4.1):

if
(document.addEventListener){
    
function 
DOMContentLoaded(){
        
$(
"#status"
).text(
"DOM is ready now!"
);
    
}
    
document.addEventListener(
"DOMContentLoaded"
, DOMContentLoaded,
false 
);
}
window.onload=
function
(){
            
$(
"#status"
).text(
"DOM is ready AND wondow.onload is excute!"
);
}

HTML 代码 body 部分:

<h1> DOM READY's TEST </h1>
<img src="./delay.php" alt="delay image" />
<p id="status"> DOM is not ready </p>

为了清楚的看到效果,特意写个简单的php文件,提供图片延时载入,代码例如以下:

sleep(5);
header('Location:./delay.png');

在firefox和chrome以及opera中都能够清楚的看到,在图片未载入之前。id为status的段落已经显示了“DOM is ready now!”。然后等5秒钟后,图片载入完毕后,此段落显示”DOM is ready AND wondow.onload is excute!”

此代码并不能在IE中工作,一方面是由于我使用的是addEventListener,開始前做了个推断,不存在此方法则不加入此事件。这样做的原因是IE确实是不支持DOMContentLoaded这个事件的,为了代码的简单。就没为IE写了。尽管IE没有此事件,可是我们却能够来模拟这个事件,常见的方法是推断element的doScroll假设成功则说明DOM加载完毕。

常见的库中都提供了此事件的兼容各个浏览器的封装。假设你是个jQuery使用者,你可能会常常使用$(document).ready();或靠$(function(){}) 这是用来DOMContentLoaded大事

版权声明:本文博主原创文章。博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116789.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 递归算法浅谈

    递归算法浅谈

    2021年12月4日
    43
  • IDEA 主题下载

    IDEA 主题下载IDEA中主题可以更换,大家可以直接到http://www.riaway.com/网站或http://color-themes.com/?view=index网站,直接下载自己喜欢的主题。然后导入进去IDEA中,IDEA中代码编辑器和控制台的字体颜色和背景就会发生改变。这些主题导入IDEA之后,如果对某些个字体颜色配色方案不满意的,还可以在IDEA中修改设置,很人性化转载…

    2022年5月6日
    327
  • ntp时间同步协议_ntp服务器搭建

    ntp时间同步协议_ntp服务器搭建一、简介1.作用NTP是从时间协议(TimeProtocol)和ICMP时间戳报文(ICMPTimeStampMessage)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。NTP协议是基于UDP进行传输的,使用端口号为123。2.特征NTP提供了准…

    2022年10月11日
    0
  • osip2添加多个不同类型body[通俗易懂]

    osip2添加多个不同类型body[通俗易懂]最近接到任务,要写一个SIP协议转换的服务器。但个人对SIP了解非常少,幸好学长写有一个类似的东西,于是向学长请教。但是由于个人悟性问题(微笑),我除了知道了用了osip和exosip这个库之外,其他一无所知。于是回实验室开始看源码+网上查资料,发现了一个问题:目前学长的程序还有网上的资料千篇一律全是只添加了一个body(即SDP部分),但是根据实际,我需要添加两个body(SDP和XML),但网

    2022年6月29日
    23
  • Win7迁移基础知识(2):USMT(用户状态迁移工具)

    Win7迁移基础知识(2):USMT(用户状态迁移工具)

    2021年8月20日
    115
  • clion激活码 2021激活码[在线序列号]

    clion激活码 2021激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号