# 网页渲染过程
# 加载过程
- DNS解析:域名 -> ip地址
- 浏览器根据ip地址像服务器发起http请求
- 服务器处理http请求,并返回给浏览器
# 渲染过程
- 根据HTML代码生成DOM Tree
- 根据css代码生成 cssom
- 将DOM tree 和cssom 整合形成 Render tree
# 渲染过程2
- 根据Render Tree 渲染页面
- 遇到
<script>则暂停渲染,优先加载并执行js代码,完成再继续渲染 - 知道把 Render Tree渲染完成
window.addEventListener('load',function(){
//页面的全部资源加载完才会窒息性,包括图片,视频等
})
document.addEventListener('DOMContentLoaded',function(){
//DOM 渲染完即可执行,此时图片、视频还可能没有加载完成
})
1
2
3
4
5
6
7
2
3
4
5
6
7
# 提示
- 加载图片不会阻塞渲染过程
- 为什么js一般写在body最后 答:因为渲染过程中遇到script会停止渲染,等到js加载执行完在进行,这样对用户体验不好