通过观看周啸天公开课——深度刨析前端性能优化CRP对百度到的各种杂七杂八的前端性能优化方面的问题进行梳理

先来说一下,前端页面的请求过程有如下几个步骤:(脑子里想一下这个过程哈)
步骤1:对输入地址栏的URL进行解析
步骤2:DNS解析
步骤3:TCP的3次握手
步骤4:发送HTTP请求
步骤5:服务器端的响应处理
步骤6:TCP的4次挥手
步骤7:浏览器进行解析渲染

步骤1有关URL解析并未进行深入讲解,主要涉及
1)地址解析与编码
2)HSTS(完全没见过,说是涉及安全问题啥的。)
3)缓存(这个还好,至少见过,应该是与强缓存和协商缓存有关)
4)。。。。。

步骤3和步骤6是网络传输内容,与前端优化的关系不大。
步骤5是后台问题,关系也不大

先重点说一下步骤7,浏览器的解析渲染:
首先,先来说一下步骤7的渲染流程:
DOM树的渲染------>CSSOM树的渲染------>渲染树

1.DOM树渲染步骤:
1)返回的最底层的其实是一些十六进制数的形式(3C 2C 79 3E 6F)
2)通过转化使这些十六进制转化为了‘标签’字符集(html head body p)
3)通过Tokens令牌,对这些字符集进行‘闭合’的处理(比如,哦~这个是html的起始标签,然后中间罗里吧嗦一大堆之后,哦!找到你了,html的闭合标签)
4)通过词法分析,把令牌搞出来的东西生成具体的节点,这个过程已经把DOM的结构搭建好了
5)最后生成了一个有标签,有结构,有层级的树形的DOM结构

ok,分析完了DOM树的渲染步骤了,我们来对他进行优化:
1).在步骤2到步骤3的过程中,Tokens令牌是W3C规范的,所以,你的标签要语义化,这样才能更快更好的进行分析。
2).步骤3到步骤4过程中,在进行节点生成时,你的层级结构要尽可能的少,这样才更快。最优的层级应该三四级。

2.CSSOM树的渲染:
大体与DOM的过程相同。
这里不得不说一点,css样式的引入,link外部引入和@import,有什么不同呢?
link是异步的,也是一个http请求。而@import是同步的,回阻碍下边内容的渲染。
优化:
1)选择器的层级问题
2)由不得不说的一点,得出如下如何引入结论:
若样式较少,采用内部样式style标签,因为它不需要http请求
若样式很多,采用link标签,放在顶部,尽早的把css样式下载下来
一般不用@import,除非需求需要(这里可能涉及到了步骤4,发送HTTP请求的内容)
PS:
CSS选择器的渲染是由右向左的,注意层级问题
CSS预编译器(less sass stylus)虽然在开发,维护,复用特别好使,但是一定要注意层级问题

3.渲染树:
当DOM与CSSOM树加载完成后,融合为渲染树(render tree)
根据渲染树,计算视图内的确切位置,这个布局计算称为回流
根据渲染树和回流得到的计算结构,得到节点的绝对像素,称为绘制
因此优化主要就是:减少DOM的回流和重绘

ok,步骤7浏览器的解析渲染方面的优化就先这样了,你总结一下在网上百度到的优化方法哪些是属于浏览器渲染这一块的,想想。

原文链接:https://blog.csdn.net/BWater_monster/java/article/details/106227357

前端性能优化,之还在为多种多样的知识点整理苦恼吗,进来看看吧。(转载)相关推荐

  1. 前端性能优化,之还在为多种多样的知识点整理苦恼吗,进来看看吧。

    通过观看周啸天公开课--深度刨析前端性能优化CRP对百度到的各种杂七杂八的前端性能优化方面的问题进行梳理 先来说一下,前端页面的请求过程有如下几个步骤:(脑子里想一下这个过程哈) 步骤1:对输入地址栏 ...

  2. 做前端性能优化,还不知道什么是Preload、Prefetch、Preconnect、Prerendering,你就out了?

    做前端性能优化,还不知道什么是Preload.Prefetch.Preconnect? 今天,我们将探讨当前的资源提示和指令,这是提高网站或 Web 应用程序性能的另一种好方法.您可能听说过Prelo ...

  3. gc的原因 频繁full_Java性能优化要点之:GC垃圾回收知识点整理

    要掌握了GC垃圾回收的相关知识点,程序员在工作中就不用担心内存管理了,因为垃圾收集器会自动进行管理.本文为大家整理了GC垃圾回收的学习笔记,主要内容包括了判断回收条件,虚拟机频繁full GC的解决对 ...

  4. 深度讲解:web前端性能优化

    一.课程简介: 1.课程大纲 涉及到的分类 网络层面 构建层面 浏览器渲染层面 服务端层面 涉及到的功能点 资源的合并与压缩 图片编解码原理和类型选择 浏览器渲染机制 懒加载预加载 浏览器存储 缓存机 ...

  5. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  6. 前端性能优化——从 10 多秒到 1.05 秒

    https://lishaoy.net 关于 性能优化 是个大的面,这篇文章主要涉及到 前端 的几个点,如 前端性能优化 的流程.常见技术手段.工具等. 提及 前端性能优化 ,大家应该都会想到 雅虎军 ...

  7. 如何给网站瘦身?图文并茂的前端性能优化指南

    提高网站的速度对网站的成功有巨大的影响,因为网站的加载速度直接影响到用户体验和搜索引擎排名.Browser Diet 是一个非常好的指南,列出了前端性能优化的各种技巧和工具. 您可能感兴趣的相关文章 ...

  8. 前端性能优化:当页面渲染遇上边缘计算

    简介: 当前几种常见的前端性能优化方案仍然不可避免地会存在一些缺点.本文在 ESI (Edge Side Include) 的基础上,提出了一种新的优化思路:边缘流式渲染方案(ESR),即借助 CDN ...

  9. 前端性能优化 -- 从 10 多秒到 1.05 秒

    关于 性能优化 是个大的面,这篇文章主要涉及到 前端 的几个点,如 前端性能优化 的流程.常见技术手段.工具等. 提及 前端性能优化 ,大家应该都会想到 雅虎军规,本文会结合 雅虎军规 融入自己的了解 ...

最新文章

  1. EFCore+MSSS CodeFirst多对多设计初体验
  2. GIS 中openstreetmap数据获取
  3. 项目经理的个人体会、经验总结
  4. BZOJ 3309 DZY Loves Math
  5. linux下php的安装路径,Linux下Apache、PHP、MySQL默认安装路径
  6. Linux中的动态链接库与静态链接库
  7. phaser设置图片资源大小
  8. chartjs更新数据 vue_vue.js - 在vue中 怎么更改chart图表的文字大小
  9. 匹配yyyy-mm-dd日期格式的的正则表达式
  10. android UI开源库
  11. qchart 坐标轴设置_「Qt」利用QChart实现实时动态的曲线数据展示
  12. 杭州29岁IT男凌晨突发脑出血!老父亲面对医生急的差点跪下
  13. Html 5 网络存储之 LocalStorage、SessionStorage
  14. CAD迷你画图2020 R11 中文绿色版,详细使用教程
  15. Mybatis一对一、一对多、多对多查询。+MYSQL
  16. 以太坊存储项目Swarm (代币bzz)1.0 主网正式上线
  17. HTML5七夕情人节表白网页制作【花瓣图片表白】HTML+CSS+JavaScript html生日快乐祝福网页制作
  18. 『机器学习』入门教程汇总
  19. Qt 6.3.1 显示界面元素
  20. 声声不息,新“声”报到

热门文章

  1. LaBSE : Language-agnostic BERT Sentence Embedding
  2. 1421 净现值查询
  3. 项目中成功的运用proxool连接池
  4. 孙子兵法 军形第四(翻译)
  5. 如何使用计算机的加减乘除,计算机是怎么懂加减乘除的
  6. 【零一原创】2020 CSP-J 复赛题解 400分攻略
  7. char、char*和char**区别与联系(入门级)
  8. 吉林大学软件学院数据库系统原理复习
  9. idea用maven搭建的web项目没有src目录只有pom解决方案(最暴力,最简单版本)
  10. 零基础学习java值得看的几本书