Perfmatters - 如何在 WordPress 中开启延迟加载 (图片, 框架, 和视频)

随着网络上的内容越来越长,利用 WordPress 中的延迟加载等功能保持网站快速运行非常重要。

推荐广告

什么是延迟加载?

延迟加载实质上是延迟图像的加载,直到用户向下滚动页面(图像进入视口)。

为什么这么棒?好吧,假设你有一篇长格式的博客文章,里面有 100 张图片。默认情况下,当有人访问文章时,浏览器将尝试加载所有 100 幅图像。即使使用优化的图像,这也需要一段时间,尤其是在移动设备上。

但是如果你懒散地加载图像,它只会将图像加载到访问者可以在浏览器中看到的页面顶部。图像的数量根据浏览器的类型、正在使用的延迟加载类型、视口的大小等而有所不同。但不管怎样,这种方法通常会立即减少85% 以上的请求。

延迟加载是如何工作的?

我们使用一个小的(2.5 KB)开源 JavaScript 库来延迟加载图像、iFrame等。我们还支持延迟加载 WebP 文件。

您将在网站上看到对以下文件的请求:

/perfmatters/js/lazyload.min.js

Perfmatters 延迟加载与原生延迟加载

WordPress 5.5 现在默认具有本机延迟加载。

但是,我们建议在 Perfmatters 中使用延迟加载解决方案。

为什么?我们的解决方案比本机延迟加载更快更好,原因如下:

  • 原生意味着它让浏览器决定应该延迟加载什么。不幸的是,默认情况下,这是一个过于急切的问题。这可能是一个优势,因为您可能不需要任何排除,但一般来说,延迟加载的资源不会太多。这意味着它不会那么快。
  • 原生延迟加载正在改进,但仍缺乏对某些方面的支持。正如您在下面看到的,我们已经为我们的产品添加了很多功能。

重要提示:启用 Perfmatters 中的延迟加载时,WordPress 中的默认本机延迟加载将自动禁用。

强制某个元素延迟加载

有时候,来自另一个插件或主题的元素已经应用了排除类或属性,这在默认情况下会阻止我们的延迟加载。如果发生这种情况,您可以使用以下过滤器强制该元素延迟加载。

perfmatters_lazyload_forced_attributes 筛选器

此过滤器的使用方法与排除属性示例中的相同,但当元素包含其中一个包含的属性时,我们的延迟加载程序将跳过检查该项是否排除,并继续尝试延迟加载该元素。

function perfmatters_lazyload_force_attributes($attributes) { $attributes[] = "title='Perfmatters'"; $attributes[] = "class='size-full"; return $attributes; } add_filter('perfmatters_lazyload_forced_attributes', 'perfmatters_lazyload_force_attributes');

延迟加载测试

我们在我们的一篇博客文章上做了一个小测试,这样你就可以看到区别了。

使用了延迟加载

这是在我们启用延迟加载之后。如您所见,请求数降至35,总页面大小降至245KB,加载时间降至0.8s。

换句话说,只要启用延迟加载,我们的速度提高了33%,页面大小减少了70%。(如上图)

未使用延迟加载

这是在我们懒散加载图像之前。如您所见,共有56个请求,总页面大小为852 KB,加载时间为1.2秒。

Not lazy-loaded

我们测试的文章已经相当优化了。

如果您懒得加载未优化的图像或页面上有更多图像,您将看到更大的速度提升。

排除前导图像

您可以手动从延迟加载中排除图像,但有时更容易自动化该过程。

这就是“排除主要图像”功能发挥作用的地方。

这允许您从页面顶部(折叠上方)开始自动排除一定数量的图像。

重要提示:在估计或测试要排除的图像数时,请确保您已注销。

自动排除不适用于背景图像。

如果您正在使用我们的预加载关键图像功能,这将自动从延迟加载中排除这些图像。这意味着您可能不需要使用“排除前导图像”。

YouTube 预览缩略图

如果您在您的网站上使用 YouTube 视频,启用我们的预览缩略图功能将非常有利。这样做的目的是用预览缩略图和轻量级 SVG 播放图标替换 YouTube iFrame。然后在单击时加载 iframe。

这是加载 YouTube 视频的最快方式。

在我们的视频性能测试中,我们看到该功能将网站速度提高了64%。它还将总页面大小减少了58%。真是难以置信。

  • 之前:加载时间为1.93秒,总页面大小为691 KB。
  • 之后(延迟加载):0.72s加载时间,总页面大小为288KB。

YouTube 预览缩略图质量过滤器

默认情况下,从 YouTube 中提取低分辨率图像作为缩略图。我们有一个过滤器,你可以用它来改变缩略图的质量。maxresdefault 属性将获得最高质量(如果可用)。

确保 YouTube 缩略图至少为 1280 x 720像素。看看这本关于如何调整 YouTube 缩略图大小的指南。

add_filter('perfmatters_lazyload_youtube_thumbnail_resolution', function($resolution) { return 'maxresdefault'; });

您还可以使用 wp_is_mobile 功能在移动设备上显示低分辨率图像,同时在桌面上显示高分辨率缩略图。

add_filter('perfmatters_lazyload_youtube_thumbnail_resolution', function($resolution) { if(!wp_is_mobile()) { $resolution = 'maxresdefault'; } return $resolution; });

DOM 监测

DOM 监控监视 DOM 中的更改并动态延迟加载新添加的元素。

这提高了加载页面时使用无限滚动的第三方插件和主题的兼容性。

要启用此功能,请切换 “DOM监控” 选项。

注意:如果您不使用无限滚动,我们不建议启用此选项。

从延迟加载上排除图片

有时,您可能希望从懒散加载中排除特定图像。有几种方法可以做到这一点。

排除使用 Perfmatters UI

最简单的方法是在事务中使用 UI。通过添加源 URL(example.png)或添加其属性字符串的任何唯一部分(class=“example”)来排除元素。

格式:每行一个

如果您有一个像 ShortPixel 或 Imagify 这样的插件来提供 WebP 图像,那么您可能需要将 <picture> 标记作为目标。

这里有几个例子:

  • 如果您正在使用像 GeneratePress 这样的主题,并且希望从延迟加载中排除徽标,则可以添加他们的 is-logo-image 类。
  • 如果您想从博客文章的延迟加载中排除特色图像,可以使用它们的缩略图类,例如 class=“attachment full size full”。

no-lazy CSS 类别

如果您有权向要排除的特定图像添加 CSS 类,只需添加 no-lazy 类,当文档准备加载时,应该忽略该类。

perfmatters_lazyload_excluded_attributes 筛选器

如果要排除的图像更难直接访问和操作,我们有一个 WordPress 过滤器,可用于添加特定于所讨论图像的任何属性或属性部分。

在下面的示例中,我们针对的是包含 title='perfmattents' 属性或 partial class='size-full' 属性的任何图像。这只是一个字符串匹配,因此任何属性的任何部分都应该有效,它只需要与要排除的一个或多个图像精确匹配。

function perfmatters_lazyload_exclude_attributes($attributes) { $attributes[] = "title='Perfmatters'"; $attributes[] = "class='size-full"; return $attributes; } add_filter('perfmatters_lazyload_excluded_attributes', 'perfmatters_lazyload_exclude_attributes');

以下是基于图像文件名匹配的排除示例。

function perfmatters_lazyload_exclude_attributes($attributes) { $attributes[] = 'src="https://domain.com/image.png"'; return $attributes; } add_filter('perfmatters_lazyload_excluded_attributes', 'perfmatters_lazyload_exclude_attributes');

如何更改视口阈值

如果需要,可以扩展延迟加载阈值,允许在图像在视口中可见之前加载图像。

默认情况下,它是 0px,这是最具侵略性和性能最佳的。然而,有些人可能更喜欢增加这个,因为它可以使滚动更加平滑。

或者换句话说,当你向下滚动页面时,弹出的图像会更少。

您还可以使用以下过滤器更改延迟加载的视口阈值,它接受px或%。

add_filter('perfmatters_lazyload_threshold', function($threshold) {
return '500px';
});

淡入效果

一些用户喜欢在向下滚动页面时对图像产生淡入效果。

这为图像创建了更平滑的过渡,而不是在延迟加载后立即弹出。

要启用此功能,请切换“淡入”选项。

如果您想更改淡入过渡速度,可以使用我们的 #perfacts_fade_in_speed 过滤器。

CSS 背景图片

Perfmatters 支持延迟加载内联背景图像,无需任何额外配置。然而,一些页面生成器、主题和插件在其(CSS)样式表中加载背景图像。

Perfmatters 无法更改其 CSS 的内容,但我们可以防止某些容器立即在浏览器中加载其背景图像。

这使您能够在 GenerateBlock、Elementor、Oxygen、Divi、Beaver Builder 等中延迟加载 CSS 背景图像。

要启用此功能,请启用 “CSS背景图像”。

在“背景选择器”框中,输入在包含背景图像的容器上找到的特定 ID 或类。

格式:每行一个。

如果您有权向容器本身添加一个额外的类,那么您可以添加我们的 css bg 类。

Lazy loading CSS Background Selectors

 

推荐广告

登录账户

忘记密码?

忘记密码?

输入您的账户数据,我们稍后会发送重置密码的链接。

您的密码重置链接好像无效或已过期。

登录账户

隐私政策

添加到集合

暂无集合

在这里你可以找到你之前创建的所有集合。