Web 性能优化:21 种优化 CSS 和加快网站速度的方法

news/2024/5/17 3:31:32/文章来源:https://fundebug.blog.csdn.net/article/details/88633448

摘要: 优化CSS。

  • 原文:Web 性能优化:21 种优化 CSS 和加快网站速度的方法
  • 作者:前端小智

Fundebug经授权转载,版权归原作者所有。

这是 Web 性能优化的第 4 篇,上一篇在下面看点击查看:

  • Web 性能优化:使用 Webpack 分离数据的正确方法
  • Web 性能优化:图片优化让网站大小减少 62%
  • Web 性能优化:缓存 React 事件来提高性能

CSS 必须通过一个相对复杂的管道,就像 HTML 和 JavaScript 一样,浏览器必须从服务器下载文件,然后进行解析并将其应用于 DOM。由于优化程度极高,这个过程通常非常快——对于不基于框架的小型 web 项目,CSS 通常只占总资源消耗的一小部分。

框架打破了这种平衡。包括一个 JavaScript GUI 堆栈,如 jQuery UI,可以观察 CSS, JS 和 HTML 大小逐渐的变大。通常,开发人员最后才会感到压力,当他们用一个强大的 8 核工作站后面,使用 T3 internet 时,没有人关心速度,这随着延迟或 cpu 受限设备的出现而改变。

优化 CSS 需要一个多维的方法。虽然手工编写的代码可以使用各种技术进行简化,但是手工检查框架代码是低效的。在这些情况下,使用自动化的简化会产生更好的结果。

下面的步骤将带我们进入 CSS 优化的世界。并不是每一个都可以直接应用到你的项目中,但是一定要记住它们。

01. 使用简写

使用缩写语句,如下面所示的 margin 声明,可以从根本上减小 CSS 文件的大小。在 google 上搜索 CSS Shorthand 可以找到许多其他的速记形式。

p {margin-top: 1px;margin-right: 2px;margin-bottom: 3px;margin-left: 4px;
}p {margin: 1px 2px 3px 4px;
}

02. 查找并删除未使用的 CSS

删除不必要的部分 CSS,j 显然会加快网页的加载速度。谷歌的 Chrome 浏览器有这种开箱即用的功能。只需转到查看>开发人员>开发人员工具,并在最近的版本中打开 Sources 选项卡,然后打开命令菜单。然后,选择 Show Coverage,在 Coverage analysis 窗口中高亮显示当前页面上未使用的代码,让您大开眼界。

打开谷歌浏览器开发都工具,在 Conlse 旁边更多选择 Coverage,就可以看到未使用的 CSS, 点击对应的项,高亮显示当前页面上未使用的代码,让你大开眼界:

03. 以更便捷的方式做到这一点

在逐行分析中导航并不一定便捷,使用谷歌浏览器的 Audits 就可以快速帮我们分析,使用方式,打开开发者工具,点击 Audits 栏位,点击 Run audits 后就开始分析结果。

04. 注意这些问题

请记住,对 CSS 的自动分析总是会导致错误。用压缩后的 CSS 文件替换 未压缩 CSS 文件之后,对整个网站进行彻底的测试——没有人知道优化器会导致什么错误。

05. 内联关键 CSS

加载外部样式表需要花费时间,这是由于延迟造成的——因此,可以把最关键的代码位放在 head 中。但是,请确保不要做得过火,记住,执行维护任务的人员也必须读取代码。

<html><head><style>.blue {color: blue;}</style></head><body><div class="blue">Hello, world!</div></body>
</html>

06. 允许反并行解析

@import 将 CSS 样式方便添加代码中。遗憾的是,这些好处并不是没有代价的:由于 @import 可以嵌套,因此无法并行解析它们。更并行的方法是使用一系列 标记,浏览器可以立即获取这些标记。

@import url("a.css"); @import url("b.css"); @import url("c.css");<link rel="stylesheet" href="a.css" />
<link rel="stylesheet" href="b.css" />
<link rel="stylesheet" href="c.css" />

07. 用 CSS 替换图片

几年前,一套半透明的 png 在网站上创建半透明效果是司空见惯的。现在,CSS 过 滤器提供了一种节省资源的替代方法。例如,以下这个代码片段可以确保所讨论的图片显示为其自身的灰度版本。

img {-webkit-filter: grayscale(100%);/* old safari */filter: grayscale(100%);
}

08. 使用颜色快捷方式

常识告诉我们,六位数的颜色描述符是表达颜色最有效的方式。事实并非如此——在某些情况下,速记描述或颜色名称可以更短。

target {background-color: #ffffff;
}
target {background: #fff;
}

09. 删除不必要的零和单位

CSS 支持多种单位和数字格式。它们是一个值得感谢的优化目标——可以删除尾随和跟随的零,如下面的代码片段所示。此外,请记住,零始终是零,添加维度不会为包含的信息附带价值。

padding: 0.2em;
margin: 20em;
avalue: 0px;
padding: 0.2em;
margin: 20em;
avalue: 0;

10. 消除过多分号

这种优化需要谨慎,因为它会影响代码的更改。CSS 的规范允许省略属性组中的最后一个分号。由于这种优化方法所节省的成本很小,所以我们主要针对那些正在开发自动优化的程序员说明这一点。

p {. . . font-size: 1.33em;
}

代码部署后可能存在的 BUG 没法实时知道,事后为了解决这些 BUG,花了大量的时间进行 log 调试,这边顺便给大家推荐一个好用的 BUG 监控工具 Fundebug。

11. 使用纹理图集

由于协议开销的原因,加载多个小图片的效率很低。CSS 精灵将一系列小图片组合成一个大的 PNG 文件,然后通过 CSS 规则将其分解。TexturePacker 等程序大大简化了创建过程。

.download {width: 80px;height: 31px;background-position: -160px -160px;
}.download:hover {width: 80px;height: 32px;background-position: -80px -160px;
}

12. 省略 px

提高性能的一个简单方法是使用 CSS 标准的一个特性。为 0 的数值默认单位是 px—— 删除 px 可以为每个数字节省两个字节。

h2 {padding: 0px;margin: 0px;
}h2 {padding: 0;margin: 0;
}

13. 避免需要性能要求的属性

分析表明,一些标签比其他标签更昂贵。以下这些解析会影响性能—如果在没有必要的情况,尽量不要使用它们。

border-radius
box-shadow
transform
filter
:nth-child
position: fixed;

14. 删除空格

空格——考虑制表符、回车符和空格——使代码更容易阅读,但从解析器的角度看,它没有什么用处。在发布前删除它们,更好的方法是将此任务委托给 shell 脚本或类似的工具。

15. 删除注释

注释对编译器也没有任何作用。创建一个自定义解析器,以便在发布之前删除它们。这不仅节省了带宽,而且还确保攻击者和克隆者更难理解手头代码背后的思想。

16. 使用自动压缩

Yahoo  的用户体验团队创建了一个处理许多压缩任务的应用程序。它以  JAR  文件的形式发布,在这里可用,并且可以使用所选的 JVM 运行。

java -jar yuicompressor-x.y.z.jar
Usage: java -jar yuicompressor-x.y.z.jar[options] [input file]
Global Options-h, --help                Displays thisinformation--type <js|css>           Specifies thetype of the input file

17. 在 NPM 运行它

如果你希望将产品集成到 Node.JS 中,请访问 npmjs.com/package/yuicompressor。维护不良的存储库包含一组包装器文件和 JavaScript API。

var compressor = require('yuicompressor');compressor.compress('/path/to/
file or String of JS', {//Compressor Options:charset: 'utf8',type: 'js',

18. 保持 Sass 的检查

虽然 CSS 选择器的性能不像几年前那么重要(请参阅参考资料),但是像 Sass 这样的框架有时会产生非常复杂的代,不时查看输出文件,并考虑优化结果的方法。

19. 设置缓存

有句老话说,最快的文件永远不会通过网络发送。让浏览器缓存请求有效地实现这一点。遗憾的是,缓存头的设置必须在服务器上进行。充分上面讲的的两个 Chrome 工具,它们提供了一种快速分析更改结果的方法。

20. 打破缓存

设计人员通常不喜欢缓存,因为他们担心浏览器会缓存上次的样式表。解决这个问题的一个简单方法是包含带有文件名的标记。遗憾的是,由于一些代理拒绝缓存具有“动态”路径的文件,此步骤所附带的代码中概述的方案并不适用于所有地方。

<link rel="stylesheet" href="style.css?v=1.2.3" />

21. 不要忘记基础知识

优化 CSS 只是游戏的一部分。如果你的服务器不使用 HTTP/2 和 gzip 压缩,那么在数据传输期间会损失很多时间。幸运的是,解决这两个问题通常很简单。我们的示例显示了对常用 Apache 服务器的一些调整。如果您发现自己在一个不同的系统上,只需参考服务器文档即可。

pico /etc/httpd/conf/httpd.conf
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_734287.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【推荐】程序员自学神级视频教程网站,慕课网

现在越来越多的人&#xff0c;想进军互联网&#xff0c;转行互联网&#xff0c;却不知道怎么入门。我也是转行互联网的人&#xff0c;说起入门&#xff0c;最好的办法就是看视频教程&#xff0c;当时&#xff0c;我看的是韩顺平老师的教程&#xff0c;他可以说是我的互联网启蒙…

Fundebug网站升级HTTP/2,真的变快了!

作为新一代的HTTP协议&#xff0c;HTTP/2可以提高网站性能&#xff0c;优化用户体验&#xff0c;Fundebug也是时候升级HTTP/2了&#xff0c;虽然已经有点晚了。 升级HTTP/2是一件很简单的事情&#xff0c;改1行Nginx配置就好了&#xff0c;但是&#xff0c;工程师只知道How是远…

来,了解一下90年代的网站

来自&#xff1a;www.sohu.com/a/240853435_66877020 年对于互联网来说是很长的一段时间&#xff0c;网页设计在此期间也走过了很长的路&#xff0c;我们现在回头看&#xff0c;几乎不敢相信我们曾经设计过这种东西&#xff01;▎1. Penny JuicePenny Juice 是一款为儿童制作的…

网站 HTTP 升级 HTTPS 完全配置手册

作者&#xff1a;葡萄城技术团队链接&#xff1a;https://my.oschina.net/powertoolsteam/blog/1862967昨天&#xff0c;所有使用Google Chrome稳定版的用户迎来了v68正式版首个版本的发布&#xff0c;详细版本号为v68.0.3440.75&#xff0c;上一个正式版v67.0.3396.99发布于6月…

底层小程序员 练手做一个网站不小心赚了几十亿

微信又改版了&#xff0c;为了方便第一时间看到我们的推送&#xff0c;请按照下列操作&#xff0c;设置“置顶”&#xff1a;点击上方蓝色字体“程序员之家”-点击右上角“…”-点击“设为星标”。可以啦&#xff0c;让我们继续相互陪伴。人们都说互联网是个神奇的领域&#xf…

8个程序员专用软件/网站,个个是神器,第一个最惊喜......

微信又改版了&#xff0c;为了方便第一时间看到我们的推送&#xff0c;请按照下列操作&#xff0c;设置“置顶”&#xff1a;点击上方蓝色字体“程序员之家”-点击右上角“…”-点击“设为星标”。可以啦&#xff0c;让我们继续相互陪伴。节省时间的方法有俩&#xff0c;一个是…

相亲网站男生都是一个人,单身程序员惊现神操作!!

微信又改版了&#xff0c;为了方便第一时间看到我们的推送&#xff0c;请按照下列操作&#xff0c;设置“置顶”&#xff1a;点击上方蓝色字体“程序员之家”-点击右上角“…”-点击“设为星标”。可以啦&#xff0c;让我们继续相互陪伴。话说&#xff0c;今年还有不到一个月就…

程序员不能忍996了!没有X生活,生病ICU,发起抗议网站,GitHub一小时破千星

本文转载自【量子位 】 公众号 【QbitAI】继女装大佬图片分享&#xff0c;割韭菜大佬卖鸡汤之后&#xff0c;GitHub又有了新功能&#xff1a;控诉互联网公司侵权行为。原来&#xff0c;是有人注册了一个叫做996.icu的域名&#xff0c;并且在这个网站上大举控诉部分互联网公司实…

程序员不能忍996了!发起抗议网站,GitHub一小时破千星

继女装大佬图片分享&#xff0c;割韭菜大佬卖鸡汤之后&#xff0c;GitHub又有了新功能&#xff1a; 控诉互联网公司侵权行为。 原来&#xff0c;是有人注册了一个叫做996.icu的域名&#xff0c;并且在这个网站上大举控诉部分互联网公司实行996工作制的行为。 并且&#xff0…

程序员免费学习编程的5个网站,你知道几个?

学习编程虽然说门槛不高&#xff0c;但是对于很多喜欢编程&#xff0c;却不知道从何处入手的小伙伴来说&#xff0c;也是一件苦差事。 不可否认编程是非常有价值的技能&#xff0c;当然也是应此前不少粉丝的要求&#xff0c;在这里就给大家推荐几个免费学习编程的好地方。 1、麻…

推荐11个免费学编程的好网站,还有200G书籍软件无门槛领取

今天给大家推荐11个可以免费学习编程的网站&#xff0c;希望大家哪怕找到一个自己合适的&#xff0c;然后好好利用起来&#xff0c;那么必将会有长足的进步。 11. Codecademy Codecademy的大名相信大家都听过&#xff0c;这个就不多介绍了&#xff0c;免费课程很多很全面。大…

这4个网站堪称效率神器,让你的工作效率甩别人10条街!

拷贝兔 https://cp.ifval.com/ 一款轻量级的 Web 跨平台文件、文字分享工具&#xff0c;支持Mac&#xff0c;Windows&#xff0c;Android&#xff0c;Linux&#xff0c;iOS互传&#xff0c;让你在不同的设备间进行文件传输&#xff0c;而不需要安装任何软件。 Toolfk https:…

推荐11个免费学编程的好网站,还有200G书籍软件无门槛领取

推荐11个免费学编程的好网站。 今天给大家推荐11个可以免费学习编程的网站&#xff0c;希望大家哪怕找到一个自己合适的&#xff0c;然后好好利用起来&#xff0c;那么必将会有长足的进步。 11. Codecademy Codecademy的大名相信大家都听过&#xff0c;这个就不多介绍了&#…

将APP发布到各大官方网站的方法,如华为、360手机助手、小米等

1、发布华为官网的方法&#xff1a; &#xff08;1&#xff09;登录华为开发者联盟网站&#xff1a;http://developer.huawei.com/consumer/cn &#xff08;2&#xff09;注册自己的账号、注册成功后&#xff0c;点击账号设置--我的产品--即可发布apk&#xff0c;华为是我了解…

in index.php line 69,wordpress首页出现index.php on line 45 - 搜外SEO问答

Warning: Invalid argument supplied for foreach() in /www/wwwroot/b.com/wp-content/themes/Luss_1.22/index.php on line 45如下图&#xff1a;就改了一下网站通知&#xff0c;突然就变这个样子了&#xff0c;尴尬&#xff01;index.php文件如下&#xff1a;if( _hui(ads_i…

php mysql 网站性能分析工具_windows+php+apache+mysql+xhprof+图文配置性能分析工具

ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最流行的Web服务器端软件之一。PHPPHP&#xff0c;是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种…

由于您访问的url有可能对网站造成安全威胁_「网络安全」安全设备篇(防火墙、IDS、IPS的区别-UTM-WAF)...

「网络安全」安全设备篇(4)——防火墙、IDS、IPS的区别简介:前面三篇文章&#xff0c;针对防火墙、IDS、IPS做了详细介绍&#xff0c;具体内容这里不再赘述&#xff0c;感兴趣的小伙伴可以去看看哦。概念不同防火墙和IPS属于访问控制类产品&#xff0c;而IDS属于审计类产品。我…

如何使用sleep study报告_亚马逊网站测评报告如何购买和使用 Gift Card

1.登录美国亚马逊账号 。首先你要有亚马逊的注册账号。登录后&#xff0c;您可以进入礼品卡购买页面 。有三种礼品卡 可以购买 。2.通过电子邮件购买虚拟礼品卡 。礼品卡可以通过两种渠道购买(即时送货和免费一天送货 )&#xff0c;我们选择通过电子邮件发送。因为其他卡都是物…

如何在线把网站html生成xml文件_谷歌SEO-外贸网站地图制作和提交教程

谷歌SEO中&#xff0c;制作和提交外贸网站站点地图有利于谷歌更好的了解网站结构。站点地图会告诉谷歌搜索引擎网站中的哪些文件比较重要&#xff0c;还会提供与这些文件有关的重要信息&#xff1a;例如&#xff0c;对于网页&#xff0c;这些信息包括网页上次更新的时间、网页更…

jsp模糊查询查不到_查询知识产权和商标专利的网站汇总!

知识产权&#xff1a;1.大陆知识产权网站http://202.127.48.148/zscq/search/jsp/vBrandSearchIndex.jsp根据查询条件&#xff0c;可以采取模糊查询和精确查询两种方式&#xff01;2.香港知识产权网址https://esearch.ipd.gov.hk/nis-pos-view/可以检索商标专利以及外观&#x…