Web运行环境总结

1. 页面加载过程

1.1 加载一个资源的过程

在浏览器地址栏输入URL

浏览器查看缓存(强缓存)

浏览器解析URL获取协议,主机,端口,path

浏览器组装一个HTTP(GET)请求报文

浏览器根据DNS服务器得要域名的IP地址

打开一个socket与目标IP地址,端口建立TCP链接

向这个IP的机器发送http/https请求

服务器收到处理并返回http请求

判断协商缓存

服务器将响应报文通过TCP连接发送回浏览器

关闭TCP连接

浏览器检查响应状态吗做出不同处理

如果资源可缓存,进行缓存

浏览器得到返回的内容

1.2 浏览器渲染页面的过程

根据HTML结构生成DOM Tree

根据CSS生成CSSOM

将DOM和CSSOM整合成RenderTree(渲染树,比DOM树多了样式)

根据RenderTree开始渲染和展示

HTML解析器遇到没有async和defer的script时,会执行并阻塞渲染 (js可能会改变dom结构)

浏览器在Document对象上触发DOMContentLoaded事件

显示页面

图片加载完毕

调用onload

1.3 为什么把css放在head中

在html渲染之前渲染css

如果css放在html元素后面,会先按没有css的情况渲染html,然后加载到css后再重新渲染html元素,这样会损耗性能。

1.4 为什么要把js放在body的最下面

1.不会阻塞body中元素的渲染,能让页面更快出来

2.script能拿到所有的标签

1.5 图片

图片是异步请求,不会影响dom树的渲染

1.6 load,DOMContentLoaded

        window.addEventListener('load',function(){
   
         //页面资源全部加载完成,包括图片视频
        });

        document
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值