前端性能优化

今天介绍前端性能优化,采用的方法是 CRP(关键渲染路径),也就是在关键点上做优化

首先,抛出一个问题,当我们在浏览器输入一个地址,到页面渲染成功,发生了什么?

这个问题的答案百度一下,到处都是。在此,我说一下我的理解:

  这个过程总共有7个过程完成

一、URL解析

二、DNS解析

三、TCP三次握手,建立客户端与服务端的连接通道

四、发送HTTP请求

五、服务器处理和响应

六、TCP的四次挥手,关闭客户端和服务端的连接通道

七、浏览器解析渲染

对于我们前端来说,优化的重点放在 DNS解析、与浏览器解析上,外加缓存

关键路径一浏览器解析过程:

1、生成DOM树                           //标签语义化、避免多级嵌套(最佳不超过四层)

2、生成CSSOM树                      //css解析过程是从右到左解析,所以避免多层级嵌套(尤其是在使用sass 或 less 过程中)

3、将DOM树与CSSOM树融合成渲染树

4、通过布局计算 回流....完成页面渲染

这个过程中,有一些需要注意的点: 一、HTML与CSS都是阻碍页面渲染的东西,二、引入CSS的方法有link 与  @import ,前者是通过异步的方式请求资源,后者是通过同步的方式请求资源。在开发过程中,应该减少@import 的使用。在遇到样式极少的情况下,建议直接写在页面顶部<style></style>里面。三、js加载,为了让页面加载速度更快,在页面中遇到<script> 标签的  ,如果加载的这个js文件有依赖 可以加关键字async ( < script async>),如果没有依赖加关键字 defer ( < script  defer>),在开发过程中,大部分请情况下加 defer 。四、页面渲染一次必然有一次回流和重绘,所以为了减少页面回流,应该少操作DOM。

以上说的这几点,利用框架 vue 或者react 开发,是可以避免的。

关键路径二:网络交互层面上的优化:

1、DNS方面的优化

    每一次DNS解析时间预计20-120毫秒   / 减少DNS请求次数   / DNS预解析(下图淘宝为例)

2、减少HTTP请求次数和请求资源大小

资源合并压缩 / 使用字体图标 / 数据延迟分批加载 / CDN资源 ......

3、利用好缓存资源

如果第一次请求了,以后重新加载页面,直接读取缓存。

常用缓存有 内存缓存 硬盘缓存

使用情况:  打开网页输入地址,直接查找硬盘缓存;

                    F5刷新,优先查找内存缓存,然后查找硬盘缓存;

                    强制刷新:全部服务器请求资源。

在这一方面, 更多的操作是服务端来配置一些参数,与前端关联性不大。

在之后面试过程中,如果提及到前端优化的问题,就可以从这些点分别去阐述,思想: CRP(关键渲染路径)。

以上就是我对前端优化的一点认识,当然还有更多层面的优化,例如:代码运行方面、代码编译、安全等方面。希望同学们补充、或者有不对的地方,提出意见。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 围绕前端的性能多如牛毛,涉及到方方面面,以我我们将围绕PC浏览器和移动端浏览器的优化策略进行罗列注意,是罗列不是展...
    流动码文阅读 3,942评论 0 0
  • 前端性能优化资料整理 页面性能差的直接后果是用户需要等待,而等待,尤其是不确定要多长时间的等待会给用户带来焦虑,为...
    飘零之雪阅读 4,268评论 2 3
  • 从雅虎军规看前端性能优化 本文大部分内容翻译自雅虎前端的性能优化,如何让页面加载更快,雅虎给出了多个规则,原文地址...
    cce117b0a0ce阅读 4,474评论 0 3
  • 在这个前端用户体验越来越重要的时代,你的页面稍微有点卡顿,都难以挽留用户。而作为一名有追求的前端,势必要力所能及地...
    SCQ000阅读 9,298评论 0 52
  • 要基于优势来工作。 现在人人都在谈优势,谈长板理论。 但是要是真的问别人“你的优势是什么?”,其实会发现大多数人是...
    杨熙Simon阅读 1,090评论 0 0

友情链接更多精彩内容