一、在浏览器中输入URL并回车后都发生了什么?
URL(俗称网页/网址;如:https://www.baidu.com/)
https => 加密传输协议
www => 服务器
baidu.com => 域名
?id=xxx => 参数
答:先解析URL拿到IP地址,建立TCP连接(三次握手),请求和传播数据,渲染页面(断开连接=> 四次握手)
俗话称:先拿到地址然后试探一下(三次握手,不携带数据哦),得到反馈后拿数据(四次挥手),拿到数据后开始渲染数据并断开连接。
二、CSS加载会造成阻塞吗?
1、会阻塞dom解析吗? => 不会 => 两者并行构建
2、会阻塞dom渲染吗? => 会 => 两者协作关系
3、会阻塞js执行吗? => 会 => 举个:当一个按钮css是蓝色的,js设置成红色,那么最后显示的是红色。但在css未执行的时候js不会执行
三、从哪些点进行性能优化?
1、页面加载性能
=> 减少http请求
缩小文件大小(gzip服务端压缩(需后端配合)、线上压缩可用熊猫压缩、代码压缩(可用webpack))
使用CDN库
懒加载、预加载
分包(先加载主包)
2、动画与操作性能
=>减少回流与重绘:脱离文档流(定位、浮动、translate.....)
(⚠️:回流:会改变元素的几何属性(长宽高)。重绘:字面意思,不改变元素的几何属性时改变元素的样式。
重绘不会影响回流,但回流一定重绘,重绘很影响性能会造成闪屏卡顿等现象)
3、内存占用
=> 尽量不闭包、尽量少定义全局变量
(因为变量不会回收,所以当使用时要记得手动回收变量 obj = null)
4、电量消耗