前端性能优化实践之关键渲染路径(2)

简介: 前端性能优化实践之关键渲染路径(2)

1、浏览器渲染原理和关键渲染路径篇

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

2、关键点之 布局(layout)和绘制(paint)

网络异常,图片无法展示
|

1、 回流

网络异常,图片无法展示
|

  • 举个例子 说明 这个事情

网络异常,图片无法展示
|

当我 手动更改 dom width 时

网络异常,图片无法展示
|

  • 再跑一遍 performance

网络异常,图片无法展示
|

  • 防止布局抖动
  • 再来一个 比较极端点的例子 变化所有图片的 大小

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 避免回流  不要做导致回流的操作,使用 translate 做位置变化 只会复合 , react 虚拟dom 将多个变更 合并
  • 读写分离

3、使用 FastDom 防止布局抖动

网络异常,图片无法展示
|

1、在 github 上找到 fastDom  https://github.com/wilsonpage/fastdom
2、查看使用 文档  读取操作使用 measure     写操作使用 mutate
3、安装 改写现在的代码 
4、查看运行效果 
复制代码
  • 改写

网络异常,图片无法展示
|

  • 暂时 报错 fastdom 找不到 暂时 忽略

4、 复合线程和图层  

网络异常,图片无法展示
|

  • 不会回流 重绘制  放在单独图层 只是触发复合

网络异常,图片无法展示
|

  • 如何查看 页面的图层 ?

直接 shift + command + p 调出搜索 然后 输入 layers 就可发现当前有 2 层

网络异常,图片无法展示
|

  • 值得注意的一点 使用 performence 时,

网络异常,图片无法展示
|

  • 应该是 顺着浏览器 可优化的 方向努力, 看现有的 API 使用和优化

5、如何减少 重绘  ?

  • 使用 transform  opacity 的例子

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 页面没有 发生 持续 回流 重绘制 行为

网络异常,图片无法展示
|

  • 当我不使用 transform 而直接更改 width 时

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 还有个方式 看页面有没有重新布局

搜 rendering

网络异常,图片无法展示
|

  • 解决方案 总结

网络异常,图片无法展示
|

网络异常,图片无法展示
|

6、防抖 事件  ?

网络异常,图片无法展示
|

  • 首先写一个 反面例子 说明这个 情况

网络异常,图片无法展示
|

  • 发现只要我 鼠标移动 就会触发这个函数 执行, 并且页面的动画效果 非常的不流畅
  • 然后 怎么解决这个问题
1、使用 requestAnimationFrame
  2、使用 一个变量控制 debounce 去除抖动 
复制代码
  • 通过 变量 控制 如果是在 执行 requestAnimationFrame 则直接 return 在 这个时间点 只执行这个 , 否则 执行一个 requestAnimationFrame, 目的是 函数执行需要放在一帧内,也就是说需要放在 16.6ms 内 , 否则没有意义

网络异常,图片无法展示
|

  • 此处应该扩展函数 防抖和节流 写法,暂且不写 后续补上吧

7、React 时间调度的实现  ?

网络异常,图片无法展示
|



相关文章
|
7天前
|
前端开发 JavaScript 定位技术
一、前端高德地图注册、项目中引入、渲染标记(Marker)and覆盖物(Circle)
文章介绍了如何在前端项目中注册并使用高德地图API,包括注册高德开放平台账号、引入高德地图到项目、以及如何在地图上渲染标记(Marker)和覆盖物(Circle)。
23 1
|
13天前
|
缓存 前端开发 JavaScript
优化前端性能:关键策略与实践
随着互联网技术的发展,用户对网页加载速度和交互体验的要求日益提高,前端性能优化成为提升用户体验和网站竞争力的关键。本文探讨了前端性能优化的重要性和七大关键策略,包括压缩资源文件、利用浏览器缓存、减少HTTP请求、异步加载、使用CDN、优化CSS和JavaScript执行及第三方脚本优化,并提供了实践案例,帮助开发者构建更快、更高效的网站。
|
7天前
|
前端开发
前端diff文件对比使用worker进行优化
如何使用Web Worker在React项目中优化文件对比差异功能的实现。
26 5
|
7天前
|
前端开发 定位技术 API
二、前端高德地图、渲染标记(Marker)引入自定义icon,手动设置zoom
文章介绍了如何在前端使用高德地图API渲染标记(Marker),并引入自定义图标,同时展示了如何手动设置地图的缩放级别。
19 1
|
11天前
|
缓存 前端开发 JavaScript
|
13天前
|
移动开发 缓存 前端开发
构建高效的前端路由系统:从原理到实践
在现代Web开发中,前端路由系统已成为构建单页面应用(SPA)不可或缺的核心技术之一。不同于传统服务器渲染的多页面应用,SPA通过前端路由技术实现了页面的局部刷新与无缝导航,极大地提升了用户体验。本文将深入剖析前端路由的工作原理,包括Hash模式与History模式的实现差异,并通过实战演示如何在Vue.js框架中构建一个高效、可维护的前端路由系统。我们还将探讨如何优化路由加载性能,确保应用在不同网络环境下的流畅运行。本文不仅适合前端开发者深入了解前端路由的奥秘,也为后端转前端或初学者提供了从零到一的实战指南。
|
3天前
|
缓存 前端开发 JavaScript
优化前端性能:关键策略与实践
在现代web开发中,前端性能优化至关重要。本文探讨了提升用户体验、转化率及降低服务器负载的关键策略,包括压缩资源文件、利用浏览器缓存、减少HTTP请求、异步加载、使用CDN、优化CSS/JavaScript执行、优化第三方脚本等,并介绍了Webpack/Rollup模块打包、HTTP/2特性、性能预算及Lighthouse/WebPageTest测试工具的应用。通过这些方法,可显著提高网站性能。
|
7天前
|
前端开发 搜索推荐 开发者
前端基础(三)_路径(绝对路径、相对路径)、语义化、特殊字符
本文介绍了前端开发中的路径概念(包括绝对路径和相对路径)、HTML的语义化以及特殊字符的使用。文章解释了绝对路径和相对路径的区别和应用场景,阐述了HTML语义化的意义和好处,并通过示例代码展示了如何在HTML中使用特殊字符。
11 0
|
19天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
2月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
29 0
下一篇
无影云桌面