当前位置:网站首页>DOMContentLoaded和window.onload
DOMContentLoaded和window.onload
2022-07-06 19:37:00 【全栈程序员站长】
大家好,又见面了,我是全栈君
相信写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.cn/116789.html原文链接:https://javaforall.cn
边栏推荐
- Redis入門完整教程:問題定比特與優化
- Have fun | latest progress of "spacecraft program" activities
- INS/GPS组合导航类型简介
- Redis getting started complete tutorial: replication topology
- Classify the features of pictures with full connection +softmax
- MySQL - common functions - string functions
- Mmdetection3d loads millimeter wave radar data
- Left path cloud recursion + dynamic planning
- tensorboard的使用
- 知识图谱构建全流程
猜你喜欢
Redis Getting started tutoriel complet: positionnement et optimisation des problèmes
如何分析粉丝兴趣?
杰理之播内置 flash 提示音控制播放暂停【篇】
Nuggets quantification: obtain data through the history method, and use the same proportional compound weight factor as Sina Finance and snowball. Different from flush
A complete tutorial for getting started with redis: problem location and optimization
Django database (SQLite) basic introductory tutorial
Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
mos管实现主副电源自动切换电路,并且“零”压降,静态电流20uA
杰理之在非蓝牙模式下,手机连接蓝牙不要跳回蓝牙模式处理方法【篇】
Change your posture to do operation and maintenance! GOPs 2022 Shenzhen station highlights first!
随机推荐
Redis getting started complete tutorial: common exceptions on the client
Left value, right value
Redis introduction complete tutorial: client case analysis
Don't you know the relationship between JSP and servlet?
换个姿势做运维!GOPS 2022 · 深圳站精彩内容抢先看!
Redis getting started complete tutorial: replication topology
杰理之RTC 时钟开发【篇】
Statistics of radar data in nuscenes data set
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (time synchronization part)
MySQL is an optimization artifact to improve the efficiency of massive data query
Niuke programming problem -- double pointer of 101 must be brushed
wzoi 1~200
从控制理论的角度谈数据分析
Introduction to ins/gps integrated navigation type
Centerx: open centernet in the way of socialism with Chinese characteristics
杰理之在非蓝牙模式下,手机连接蓝牙不要跳回蓝牙模式处理方法【篇】
Household appliance industry under the "retail is king": what is the industry consensus?
How to write test cases for test coupons?
尚硅谷JVM-第一章 类加载子系统
Qt蓝牙:QBluetoothDeviceInfo