网站性能优化:使用正确大小的图片

发布日期:2021-07-09

程序员经常把一张大图缩的很小后使用。鸽说的缩小不是压缩,而是真的缩小。我见过有人使用超过10M的巨大LOGO图片。但在网页上也只有100x50大。这一点像用高射炮打蚊子,或杀鸡用牛刀。图像看起来很好很清晰,但是它浪费了用户的数据并损害了页面性能。作为帅气的程序猿,自然不能允许这种事情发生。我们接下来讲讲如何搞定这个事情。

找到大小不正确的图像

使用了LightHouse的36测可以很容易地识别大小不正确的图像。在测试结果中,列出了所有需要调整大小的任何图像。如果你想跑个高分,也就意味着不能有太多的大小不正确的图片

确定正确的图像大小

图像的大小可能会很复杂。出于这个原因,我们提供了两种方法:“好的”和“非常好的”。两者都将提高性能,但“非常好”的方法可能需要更长的时间来理解和实现。然而,它也会带来更大的性能改进。鸽推荐你都看看,然后量力而行。

一个关于CSS单位的快速说明

有两种类型的CSS单元用于指定HTML元素的大小,包括图像:

  • 绝对单位:使用绝对单位样式的元素将始终以相同的大小显示,无论设备如何。有效的,绝对的CSS单位的例子:像素,厘米,毫米,英寸。
  • 相对单位:根据指定的相对长度,使用相对单位样式的元素将以不同的大小显示。有效的,相对CSS单位的例子:%,vw (1vw = 1%的视口宽度),em (1.5 em = 1.5倍的字体大小)。

“好”的方法

对于图像大小基于…

  • 相对单位:调整图像的大小,使其能够在所有设备上工作。

你可能会发现检查你的分析数据(如谷歌analytics)能够帮助你了解用户最常用的显示尺寸。另外,screensiz.es提供关于许多常见设备显示的信息。

  • 绝对单位:调整图像大小以匹配其显示的大小。

DevTools Elements面板可以用来确定图像显示的大小。

DevTools元素的面板

“更好”的方法

对于图像大小使用绝对的单位:使用srcset和大小属性为不同的图像提供不同的显示密度。“显示密度”是指不同的显示器具有不同的像素密度。在其他条件相同的情况下,高像素密度的显示器看起来会比低像素密度的显示器更清晰。因此,如果您想让用户体验到尽可能清晰的图像,就需要多个图像版本,而不管他们的设备的像素密度如何。响应式图像技术允许您列出多个图像版本,并让设备选择最适合它的图像,从而实现这一点。这样的话,在低分辨率设备上,会节约很多不必要的图片大小。

调整图像

无论选择哪种方法,都可以使用ImageMagick来调整图像的大小。ImageMagick是用于创建和编辑图像的最流行的命令行工具。大多数人使用CLI调整图像大小的速度要比使用基于gui的图像编辑器快得多。但如果你需要调整很多图像的话,最好和你的程序员聊聊,也许他们有更好的主意。

虎翼和起飞页都会自动调整图像大小,如果您是在使用这两种建站系统的话,完全不需要担心,系统会自动帮您完成这些设置,设置做的更好。