JS/CSS/IMG加载顺序关系之DOMContentLoaded事件
来源:互联网 发布:矩阵音响的连接 编辑:程序博客网 时间:2024/05/17 08:49
DOMContentLoaded事件的触发条件是:
将会在“所有的DOM全部加载完毕并且JS加载执行后触发”。
但如果“js是通过动态加载进来的话,是不会影响到DOMContentLoaded的触发时间”
如下图所示,蓝色的线代表DOMContentLoaded开始触发,但前提是JS已经加载完毕并执行了。
(仅仅是DOM 并不是onload事件整个页面全部加载完毕触发,DOMContentLoaded比onload要早触发 请区分开,onload为红线 表示页面已经全部加载完毕)
IMG和CSS在DOMContentLoaded触发前都做了些什么?
上面说到在DOMContentLoaded触发之前,JS已经执行完毕。
但是IMG和CSS呢?我们看下图:DOMContentLoaded事件触发了,但是有的图片被阻挡了。
阻挡也就意味着被浏览器进行了延迟加载,虽然图片请求很早就发了出去。
但是浏览器认为你的CSS没有加载完毕,不确定图片的样式到底如何,牵扯到重绘资源问题。
于是将在CSS加载完毕后加载图片。(图下没有进行阻塞的图片请求是因为没有样式名,考虑到CSS不会改变它,浏览器就不需要阻塞它)
关键点来了:虽然CSS样式表会阻塞图片的加载,但是:JS不会。
如果你的页面没有CSS样式表,图片将全部在第一时间进行加载,不会判断你JS是否加载完毕,才去加载图片。
这个应该是和浏览器特性有关,我用的是firefox 29.01
最后的结论
1、CSS样式表影响了图片的加载速度,然而JS不会影响,如果想让图片尽快加载,就不要给图片使用样式,比如宽高采用标签属性即可。
2、JS的加载执行速度影响了DOMContentLoaded事件的触发时间,如果想要尽快触发DOMContentLoaded事件,就将次要的JS采用动态加载的方式加载吧。
- JS/CSS/IMG加载顺序关系之DOMContentLoaded事件
- 【AlloyTeam】JS、CSS以及img对DOMContentLoaded事件的影响
- JS、CSS以及img对DOMContentLoaded事件的影响
- DOMContentLoaded时间触发与js,css,img的关联
- html,js,img加载顺序
- DOMContentLoaded与onload加载顺序
- html、css、js加载顺序
- html,css,js加载顺序
- html,css,js加载顺序
- html、css、js加载顺序
- html,css,js加载顺序
- html、css、js加载顺序
- DOMContentLoaded事件
- DOMContentLoaded事件
- DOMContentLoaded事件
- DOMContentLoaded事件
- DOMContentLoaded事件
- DOMContentLoaded事件
- 加密并压缩js脚本
- MySQL Select-Outer join
- NEON函数详解-----vld1_u16、vadd_u16、vst1_u16、vcombine_s32、vget_high_s32、vget_low_s32
- linux及win系统关于阻塞,非阻塞,同步I/O,异步I/O概念的统一解析
- (五)实际项目中分布式系统设计涉及算法总结
- JS/CSS/IMG加载顺序关系之DOMContentLoaded事件
- LeetCode解题报告 392. Is Subsequence [medium]
- GridView的使用
- 使用VNC连接远程服务器
- 响铃:迎风而起的布料B2B平台,谁才是决定生死的命脉?
- React 初步学习(一)
- 开始尝试用C++写算法
- 使用svnkit对svn新增代码统计、代码查询
- 亲自动手制作来自MyBatis-Spring官网的chm格式帮助文件