返回顶部
首页 > 资讯 > 前端开发 > JavaScript >使用CSS就可以提高页面渲染速度的技巧有哪些
  • 749
分享到

使用CSS就可以提高页面渲染速度的技巧有哪些

2024-04-02 19:04:59 749人浏览 泡泡鱼
摘要

本篇内容介绍了“使用CSS就可以提高页面渲染速度的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“使用CSS就可以提高页面渲染速度的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. Content-visibility

一般来说,大多数WEB应用都有复杂的UI元素,它的扩展范围超出了用户在浏览器视图中看到的内容。在这种情况下,我们可以使用内容可见性(  content-visibility )来跳过屏幕外内容的渲染。如果你有大量的离屏内容,这将大大减少页面渲染时间。

这个功能是最新增加的功能之一,也是对提高渲染性能影响最大的功能之一。虽然 content-visibility 接受几个值,但我们可以在元素上使用  content-visibility: auto; 来获得直接的性能提升。

让我们考虑一下下面的页面,其中包含许多不同信息的卡片。虽然大约有12张卡适合屏幕,但列表中大约有375张卡。正如你所看到的,浏览器用了1037ms来渲染这个页面。

使用CSS就可以提高页面渲染速度的技巧有哪些

下一步,您可以向所有卡添加 content-visibility 。

在这个例子中,在页面中加入 content-visibility 后,渲染时间下降到150ms,这是6倍以上的性能提升。

使用CSS就可以提高页面渲染速度的技巧有哪些

正如你所看到的,内容可见性是相当强大的,对提高页面渲染时间非常有用。根据我们目前所讨论的东西,你一定是把它当成了页面渲染的银弹。

content-visibility 的限制

然而,有几个领域的内容可视性不佳。我想强调两点,供大家参考。

  • 此功能仍处于试验阶段。截至目前,Firefox(PC和Android版本)、IE(我认为他们没有计划在IE中添加这个功能)和,Safari(MaciOS)不支持内容可见性。

  • 与滚动条行为有关的问题。由于元素的初始渲染高度为0px,每当你向下滚动时,这些元素就会进入屏幕。实际内容会被渲染,元素的高度也会相应更新。这将使滚动条的行为以一种非预期的方式进行。

使用CSS就可以提高页面渲染速度的技巧有哪些

为了解决滚动条的问题,你可以使用另一个叫做 contain-intrinsic-size 的 CSS  属性。它指定了一个元素的自然大小,因此,元素将以给定的高度而不是0px呈现。

.element{   content-visibility: auto;   contain-intrinsic-size: 200px; }

然而,在实验时,我注意到,即使使用 conta-intrinsic-size,如果我们有大量的元素,content-visibility 设置为 auto  ,你仍然会有较小的滚动条问题。

因此,我的建议是规划你的布局,将其分解成几个部分,然后在这些部分上使用内容可见性,以获得更好的滚动条行为。

2. Will-change 属性

浏览器上的动画并不是一件新鲜事。通常情况下,这些动画是和其他元素一起定期渲染的。不过,现在浏览器可以使用GPU来优化其中的一些动画操作。

通过will-change CSS属性,我们可以表明元素将修改特定的属性,让浏览器事先进行必要的优化。

下面发生的事情是,浏览器将为该元素创建一个单独的层。之后,它将该元素的渲染与其他优化一起委托给GPU。这将使动画更加流畅,因为GPU加速接管了动画的渲染。

考虑以下CSS类:

// In stylesheet .animating-element {   will-change: opacity; }  // In html <div class="animating-elememt">   Animating Child elements </div>

当在浏览器中渲染上述片段时,它将识别 will-change 属性并优化未来与不透明度相关的变化。

根据Maximillian  Laumeister所做的性能基准,可以看到他通过这个单行的改变获得了超过120FPS的渲染速度,而最初的渲染速度大概在50FPS。

使用CSS就可以提高页面渲染速度的技巧有哪些

什么时候不是用will-change

虽然 will-change 的目的是为了提高性能,但如果你滥用它,它也会降低Web应用的性能。

  • 使用 will-change 表示该元素在未来会发生变化。因此,如果你试图将 will-change  和动画同时使用,它将不会给你带来优化。因此,建议在父元素上使用 will-change ,在子元素上使用动画。

  • .my-class{   will-change: opacity; } .child-class{   transition: opacity 1s ease-in-out; }
  • 不要使用非动画元素。当你在一个元素上使用 will-change  时,浏览器会尝试通过将元素移动到一个新的图层并将转换工作交给GPU来优化它。如果您没有任何要转换的内容,则会导致资源浪费。

最后需要注意的是,建议在完成所有动画后,将元素的 will-change 删除。

3. 减少渲染阻止时间

今天,许多Web应用必须满足多种形式的需求,包括PC、平板电脑和手机等。为了完成这种响应式的特性,我们必须根据媒体尺寸编写新的样式。当涉及页面渲染时,它无法启动渲染阶段,直到  CSS对象模型(CSSOM)已准备就绪。根据你的Web应用,你可能会有一个大的样式表来满足所有设备的形式因素。

但是,假设我们根据表单因素将其拆分为多个样式表。在这种情况下,我们可以只让主CSS文件阻塞关键路径,并以高优先级下载它,而让其他样式表以低优先级方式下载。

<link rel="stylesheet" href="styles.css">
使用CSS就可以提高页面渲染速度的技巧有哪些

将其分解为多个样式表后:

<!-- style.css contains only the minimal styles needed for the page rendering --> <link rel="stylesheet" href="styles.css" media="all" /> <!-- Following stylesheets have only the styles necessary for the fORM factor --> <link rel="stylesheet" href="sm.css" media="(min-width: 20em)" /> <link rel="stylesheet" href="md.css" media="(min-width: 64em)" /> <link rel="stylesheet" href="lg.css" media="(min-width: 90em)" /> <link rel="stylesheet" href="ex.css" media="(min-width: 120em)" /> <link rel="stylesheet" href="print.css" media="print" />
使用CSS就可以提高页面渲染速度的技巧有哪些

如您所见,根据样式因素分解样式表可以减少渲染阻止时间。

4. 避免@import包含多个样式表

通过 @import,我们可以在另一个样式表中包含一个样式表。当我们在处理一个大型项目时,使用 @import 可以使代码更加简洁。

关于 @import 的关键事实是,它是一个阻塞调用,因为它必须通过网络请求来获取文件,解析文件,并将其包含在样式表中。如果我们在样式表中嵌套了  @import,就会妨碍渲染性能。

# style.css @import url("windows.css"); # windows.css @import url("componenets.css");
使用CSS就可以提高页面渲染速度的技巧有哪些

与使用 @import 相比,我们可以通过多个 link 来实现同样的功能,但性能要好得多,因为它允许我们并行加载样式表。

使用CSS就可以提高页面渲染速度的技巧有哪些

“使用CSS就可以提高页面渲染速度的技巧有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 使用CSS就可以提高页面渲染速度的技巧有哪些

本文链接: https://lsjlt.com/news/84065.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用CSS就可以提高页面渲染速度的技巧有哪些
    本篇内容介绍了“使用CSS就可以提高页面渲染速度的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • 提高网页加载速度的小技巧有哪些
    这期内容当中小编将会给大家带来有关提高网页加载速度的小技巧有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。其次,关键字的排名与网页的打开速度也有关系(参考:影响关键字排名的重要因素),这个主要体现搜索...
    99+
    2023-06-08
  • 提高Python数据分析速度的技巧有哪些
    这篇文章主要介绍“提高Python数据分析速度的技巧有哪些”,在日常操作中,相信很多人在提高Python数据分析速度的技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”提高Python数据分析速度的技巧...
    99+
    2023-06-02
  • 可以提高工作效率的excel技巧有哪些
    这篇文章给大家分享的是有关可以提高工作效率的excel技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.单元格中的######号相信大家在制表时经常有遇到这种情况,那么...
    99+
    2024-04-02
  • 使用CSS的高级技巧有哪些
    这篇文章给大家分享的是有关使用CSS的高级技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.使用CSS复位CSS复位可以在不同的浏览器上保持一致的样式风格。你可以使用C...
    99+
    2024-04-02
  • 在任何IDE中提高编码速度的技巧有哪些
    这篇文章主要讲解了“在任何IDE中提高编码速度的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在任何IDE中提高编码速度的技巧有哪些”吧!1.减少...
    99+
    2024-04-02
  • CSS中的高级使用技巧有哪些
    这篇文章主要为大家展示了“CSS中的高级使用技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中的高级使用技巧有哪些”这篇文章吧。 使用 :not...
    99+
    2024-04-02
  • 用来提高WordPress程序网站访问速度的小技巧有哪些
    这篇文章将为大家详细讲解有关用来提高WordPress程序网站访问速度的小技巧有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如今我们做网站大部分直接使用开源CMS程序就可以实现,且在众...
    99+
    2023-06-05
  • CSS中行高line-height属性的使用技巧有哪些
    这篇文章将为大家详细讲解有关CSS中行高line-height属性的使用技巧有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。先来回顾一下line-hei...
    99+
    2024-04-02
  • CSS代码怎么缩写才可以减少页面文件大小,提高下载速度,同时使代码简洁可读?
    这篇文章将为大家详细讲解有关CSS代码怎么缩写才可以减少页面文件大小,提高下载速度,同时使代码简洁可读?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。缩写 CSS 代码以优化网页性能和可读性 缩写 CSS...
    99+
    2024-04-02
  • 在IE6,IE7 中DIV容器固定高度的使用技巧有哪些
    这篇文章主要介绍了在IE6,IE7 中DIV容器固定高度的使用技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。IE6和IE7对CSS的解释存在很多差别,今天谈其中一点...
    99+
    2023-06-08
  • HTML 有序列表的使用技巧:提升你的页面可读性和美观性
    HTML 有序列表 可读性 美观性 语义化 1. 有序列表的基础 有序列表使用 <ol> 标签创建,其中的 <li> 标签用于定义列表项。列表项按顺序编号,默认从 1 开始。 演示代码: <ol> ...
    99+
    2024-03-06
    HTML 有序列表可显著提升页面的可读性和美观性。掌握有序列表的使用技巧 让您的页面脱颖而出。
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作