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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA 激活 服务器 2022.01(JetBrains全家桶)

    (IDEA 激活 服务器 2022.01)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlGTRPTN90LV-eyJsaWN…

    2022年3月31日
    736
  • HTML中的setCapture和releaseCapture使用介绍

    HTML中的setCapture和releaseCapture使用介绍setCapture函数的作用就是将后续的mouse事件都发送给这个对象,releaseCapture就是将鼠标事件还回去,由document、window、object之类的自行来处理。这样就保证了在拖动的过程中,不会由于经过了其它的元素而受到干扰-另外,还有一个很重要的事情是,在Win32上,mousemove的事件不是一个连续的,也就是说,并不是我们每次移动1px的鼠标指针,就会发生一…

    2022年5月30日
    37
  • eclipse开发webservice实例及问题解决「建议收藏」

    eclipse开发webservice实例及问题解决「建议收藏」1.开发环境及准备工作系统:windows7 jdk:1.8eclipse:4.6.3(一般版本通用的)下载ApacheAxis2:http://mirror.bit.edu.cn/apache/axis/axis2/java/core/1.7.6/axis2-1.7.6-bin.zip 解压缩得到的目录,目录内的文件结构如下:*****配置tomcat服务器

    2022年7月21日
    15
  • 哈佛大学幸福课-笔记[通俗易懂]

    哈佛大学幸福课-笔记[通俗易懂]什么是积极心理学心理学三大势力—行为主义/精神分析学/人本主义行为主义(生理本能):人是一个行为集合,被增强奖惩驱动,研究所观察到的并能客观地加以测量的刺激和反应。精神分析学(潜意识与神经症):主要通过潜意识分析,讨论病态人的无意识,所述内容主要有人的梦、过失、焦虑、动机冲突、情绪紧张以及人格的病理表现。人本主义(正面的本质与价值):强调人的正面本质和价值,而并非集中研究人的问题行为,并强调人的成长和发展,称为自我实现。视野的关注点是无形障碍—问题之外还有更美好的事物世界上出现了越来越多的抑郁症

    2022年7月25日
    11
  • Spring+Quartz实现定时任务的配置方法[通俗易懂]

    Spring+Quartz实现定时任务的配置方法[通俗易懂]&lt;?xmlversion="1.0"encoding="UTF-8"?&gt;&lt;beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.spring

    2022年5月24日
    35
  • java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」

    java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」背景Java线程控制中常用的两个关键字:synchronized、volatile因上篇文章《程序员眼中的Synchronized同步锁》对synchronized关键字进行来详解。本篇文章主要对volatile关键字进行解剖。volatile关键字特性内存可见性(MemoryVisibility),所有线程都能看到共享内存的最新状态;有序性;不具备原子性(最致命缺点)。volatile解决什么…

    2022年5月6日
    44

发表回复

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

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