前端性能优化---样式计算

这篇具有很好参考价值的文章主要介绍了前端性能优化---样式计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

理论

前端性能优化---样式计算,前端问题,web前端,前端,性能优化
样式计算
第一步,匹配一系列的样式选择器
第二步,取出所有匹配后的样式规则,构造RenderStyle

步骤

我们的解决思路是

  1. 减少样式计算的相互作用,即样式重新计算
    什么是 Recalculate Style?在浏览器每一帧的渲染流程中,由于 DOM 增删改等因素变化,需要重新计算受影响节点的样式,这一过程在 Chrome DevTools 中被称为 Recalculate Style。我们在排查系统页面性能问题时发现,在影响 DOM 节点数过多的情况下,Recalculate Style 通常会花费较长的时间。

  2. 使用性能更好的样式选择器
    保持简单,使用class选择器。如果的样式选择器存在逻辑.content:nth-last-child(-n+1) .text ,浏览器就需要花时间去计算你说的是哪个元素。
    edge可以在这里查看选择器的性能前端性能优化---样式计算,前端问题,web前端,前端,性能优化

  3. 减少样式计算涉及的元素数量
    旧的浏览器就没有这种优化,要注意维护自己的DOM结构树,简单较小的DOM结构是优于复杂而大的DOM结构。
    对于较新的浏览器,比如Chromium blink有一个叫失效集(Invalidation Set)的优化,它主要用来标记页面中哪些元素需要重新计算样式。
    举个例子,如果我们使用.selection *这种 CSS Selectors给元素动态添加新的样式,会让浏览器认为整个后代元素都需要重新计算样式,失去失效集的优化,从而导致整个页面卡顿。user- select的变更可能也会导致整个情况(不确定) 。

chrome可以这里可以查看受影响的节点数量
前端性能优化---样式计算,前端问题,web前端,前端,性能优化

参考文档

https://web.dev/reduce-the-scope-and-complexity-of-style-calculations/#reduce-the-number-of-elements-being-styled

应用

这是一个很好的排查样式计算拖累性能的样例:https://moderndevtools.com/lessons/11。如果能打开这个网站,可以不看下面的述说。

简述

排查youtube的性能问题。

  1. 确定造成性能卡顿的操作;

  2. 打开Chrome Performance面板录制该操作造成的结果,开始分析;
    前端性能优化---样式计算,前端问题,web前端,前端,性能优化

  3. 着眼于有标红的最大这块,可以看Summary显示这块渲染时长占比很大,基本可以确定就是这里的卡顿,只有3FPS;
    前端性能优化---样式计算,前端问题,web前端,前端,性能优化
    前端性能优化---样式计算,前端问题,web前端,前端,性能优化

  4. 在时间轴上点击Recalculate Style,发现这里触发了样式计算,影响了3827个元素,跳转到问题行,在这一行打断点;
    前端性能优化---样式计算,前端问题,web前端,前端,性能优化

前端性能优化---样式计算,前端问题,web前端,前端,性能优化
6. 发现它是在移除这class样式
前端性能优化---样式计算,前端问题,web前端,前端,性能优化
7. 在Source面板,搜索这个样式,在顶层元素移除这个样式,直接导致其几千个子元素重新计算样式。
前端性能优化---样式计算,前端问题,web前端,前端,性能优化文章来源地址https://www.toymoban.com/news/detail-595724.html

解决方法

  1. 使用简单路径短的CSS的选择器,删除button的样式。不要通过操作父元素的class去达到影响child Element的效果。
  2. 使用js直接操作样式,但可能导致可维护性降低。

到了这里,关于前端性能优化---样式计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端性能优化——内存问题

    过高的内存资源占用会导致 Web 应用变慢,甚至崩溃。可以通过 window.performance.memory 查看浏览器的内存限制等信息。 Web 前端开发中存在许多内存问题,下面是一些常见的内存问题: 内存泄漏:当一个对象不再被使用,但仍然占用着内存空间,就会导致内存泄漏问题。在 Web

    2024年02月16日
    浏览(33)
  • 前端项目中CDN的一些问题【性能优化篇】

    CDN(Content Delivery NetWork, 内容分发网络 ),是指 利用最靠近每位用户的服务区 ,更快的将资源发送给用户。 提高用户的访问速度 减轻服务器压力 提高网站的稳定性和安全性 CDN一般用来托管Web资源(文本、图片和视频等),可供下载的资源,应用程序。使用CDN来加速这些

    2024年02月03日
    浏览(27)
  • 解决前端性能问题:如何优化大量数据渲染和复杂交互?

    ✨✨祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心!✨✨  🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 六、优化图片和资源: 七、合并压缩文件 八、使用Web Workers  在前端开发

    2024年03月10日
    浏览(51)
  • 前端开发怎么解决性能优化的问题? - 易智编译EaseEditing

    前端性能优化是确保网站或应用在加载速度、响应性和用户体验等方面达到最佳状态的关键任务。以下是一些解决前端性能优化问题的方法: 压缩和合并代码: 压缩和合并CSS、JavaScript和HTML文件可以减少文件大小,加快加载速度。使用压缩工具(如UglifyJS和CSSNano)和构建工具

    2024年02月11日
    浏览(31)
  • web前端框架设计第六课-样式绑定

    1.class属性绑定 给P标签绑定一个类样式,类名为active。当active取值为true时,表示绑定样式成功,取值为false时,取消绑定 以对象形式给P标签绑定多个类样式 以数组形式给P标签绑定多个类样式 2.内联样式绑定(见书P66) –行动是治愈恐惧的良药,犹豫拖延将不断滋养恐惧

    2024年04月28日
    浏览(19)
  • 前端面试:【性能优化】页面加载性能、渲染性能、资源优化

    嗨,亲爱的前端开发者!在今天的Web世界中,用户期望页面加载速度快、交互流畅。因此,前端性能优化成为了至关重要的任务。本文将探讨三个关键方面的性能优化:页面加载性能、渲染性能以及资源优化,以帮助你构建更快速、响应更快的Web应用程序。 1. 页面加载性能:

    2024年02月11日
    浏览(39)
  • 3-web前端 css 网页样式语言,基础语言、盒子模型、浮动

    html和css的关系:   HTML(HyperText Markup Language,超文本标记语言)是用于创建网页的标准标记语言。它负责定义网页的结构和内容。HTML使用各种标签来包含文本、链接、图 片、视频等元素,并可以与如JavaScript等其他技术结合使用,实现网页的动态功能。   CSS (Cascading S

    2024年02月08日
    浏览(41)
  • 前端--性能优化【上篇】--网络优化与页面渲染优化

    link标签的rel属性设置dns-prefetch,提前获取域名对应的IP地址 用户与服务器的物理距离对响应时间也有影响。 内容分发网络(CDN)是一组分散在不同地理位置的 web 服务器,用来给用户更高效地发送内容。典型地,选择用来发送内容的服务器是基于网络距离的衡量标准的。 优

    2024年02月08日
    浏览(33)
  • 前端性能优化之浏览器渲染优化

    在当今互联网高速发展的时代,用户对于网页加载速度和性能的要求越来越高。作为前端开发者,我们需要关注并致力于提升网页的加载和渲染性能,以提供更好的用户体验。而浏览器渲染优化正是我们实现这个目标的关键。在本文中,我们将探讨一些关于浏览器渲染优化的

    2024年02月11日
    浏览(28)
  • web性能优化基础了解

    什么是web性能优化 Web性能网站或应用程序的客观度量和可感知的用户体验。性能优化是指通过各种手段和技术,使前端页面在加载、渲染和交互等方面具有更高的性能,以提升用户体验和网站的整体性能。 为什么要做性能优化 性能优化是为了提高网站或应用的响应速度、页

    2024年02月04日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包