Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

为了利用 WordPress 中的Speculation Rules API(推测规则API),WordPress 性能团队(包括来自 Google 的开发人员)最近发布了一款Plug-ins presumivelmente carregados。这个插件可以预加载页面上链接的前端 URL,从而提高网页加载速度。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

默认情况下,这个插件会在用户将鼠标悬停在相关链接上时预渲染 WordPress 前端 URL。你可以在“preparar">"ler">"推测加载”部分自定义这些设置。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

在 WordPress 管理设置中自定义推测加载插件非常简单。这意味着页面上的任何链接都会根据预设的“moderado” eagerness 配置进行预渲染,当你将鼠标悬停在链接上时,它就会开始预渲染。因此,激活插件后,你无需做任何额外操作;它可以立即使用。

例如,如果你在 WordPress 网站上安装了推测加载插件,可以使用 Chrome DevTools 检查站点并点击“Elements”选项卡。当你向下滚动时,你会注意到已经为你添加了各种推测规则,例如 <script type="speculationrules">.

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

该插件使用正则表达式来指定需要预渲染的链接、排除不预渲染的链接,并设置预渲染的急切度。以下部分详细解释了这些规则。

防止过度使用的限制

Chrome 设置了一些限制来防止 API 被过度使用:

急切度预取数量预渲染数量
立即/渴望 (immediate/eager)5010
温和/保守 (moderate/conservative)2 (先进先出)2 (先进先出)

这些限制是基于急切程度和用户交互来设定的。

  • immediate 和 eager:这些设置不依赖用户操作,因此限制较高。它们允许动态调整容量,通过移除旧的预渲染来增加新的预渲染。
  • moderate 和 conservative:这些设置由用户操作触发,遵循先进先出 (FIFO) 原则,上限为 2。当新的预渲染被添加时,会替换掉最旧的预渲染,以节省内存。
Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

防止某些 URL 预获取和预渲染

Atenção:默认情况下,WP-admin 路由会被排除在预渲染和预取之外。作为 WordPress 开发人员,您可以选择哪些路由需要优先处理。

你可以使用过滤器 plsr_speculation_rules_href_exclude_paths 来自定义哪些 URL 类型需要被排除在推测预加载之外。

以下代码示例确保类似于 https://wordpresssite.com/cart/ talvez https://wordpresssite.com/cart/book/ 的 URL 不会被预取和预渲染:

add_filter('plsr_speculation_rules_href_exclude_paths', function($exclude_paths) {
    $exclude_paths[] = '/cart/';
    $exclude_paths[] = '/cart/book/';
    return $exclude_paths;
});

你可能希望从预渲染中排除某些 URL,但仍然允许预取。例如,使用客户端 JavaScript 更新用户状态的页面可能不适合预渲染,但预取是合理的。

plsr_speculation_rules_href_exclude_paths 过滤器接收当前模式(prefetch talvez prerender),以便进行条件排除。

例如,以下代码确保类似 https://wordpresssite.com/products/ 的 URL 无法被预渲染,但仍然可以预取:

add_filter('plsr_speculation_rules_href_exclude_paths', function($exclude_paths, $mode) {
    if ($mode === 'prerender') {
        $exclude_paths[] = '/products/';
    }
    return $exclude_paths;
}, 10, 2);

调试 WordPress 网站的推测规则

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

调试推测规则可能会比较棘手,因为预渲染的页面是在一个单独的渲染器中渲染的,就像一个隐藏的后台标签页,在激活时会替换当前标签页。为了解决这个问题,Chrome 团队在 DevTools 中做了很多改进,使调试更加方便。

在 Chrome DevTools 中,导航到“应用程序”选项卡,然后向下滚动到“推测性负载”部分。这里为开发人员提供了关于推测、预渲染的 URL、失败的 URL 等详细信息。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

你可以看到页面上有五个链接可以根据推测规则 JSON 中的设置进行预渲染。你不必列出所有 URL;文档规则允许浏览器从页面上的相同来源链接中自动获取这些内容。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

某些链接的“situação atual”显示为“未触发”,这意味着这些链接的预渲染过程尚未启动。当我们将鼠标悬停在页面上的链接上时,会看到每个 URL 的状态在预渲染时发生变化。

Chrome 对预渲染设置了限制,例如 moderate 模式下最多只能预渲染两个 URL。因此,当我们将鼠标悬停在第三个链接上时,会看到该 URL 的预渲染失败原因。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

还可以使用右上角的下拉菜单或选择面板顶部的 URL 并选择Inspect来切换 DevTools 面板使用的渲染器:使用 Chrome DevTools 检查预渲染的页面

此下拉列表(以及所选的值)在所有其他面板(例如"Rede". 面板)之间共享,你可以在其中看到正在请求的页面是预渲染的页面:

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

ouElements 面板,可以看到页面内容:

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

就像你可以调试预渲染页面一样,你也可以调试预取页面。对于“推测性加载”插件,请确保选择“pré-selecionar”作为“推测模式".

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

现在,当你使用 DevTools 检查页面并导航到“推测性加载”选项卡时,你会看到各种 URL 被预取,并且相应的规则也会发生变化。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

当你将鼠标悬停在链接上并导航到“reticulação”选项卡时,预取的资源会显示在列表的末尾,如“tipologia”列所示。这些资源以最低优先级获取,因为它们是为未来的导航准备的,Chrome 会优先加载当前页面所需的资源。

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

推测规则 API 对分析的影响

分析对于跟踪网站使用情况(如页面浏览量和事件)以及通过真实用户监控 (RUM) 评估性能至关重要。需要注意的是,预渲染可能会影响分析数据。

例如,使用推测规则 API 可能需要额外的代码,以确保仅在实际访问预渲染页面时激活分析。尽管 Google Analytics、Google 发布商代码 (GPT) 和 Google AdSense 会延迟跟踪直至页面处于活动状态,但并非所有分析提供商都默认这样做。

为了解决这个问题,可以设置一个 Promise,仅在页面激活时初始化分析:

document.addEventListener('prerenderingchange', function(event) {
    if (!event.isPrerendering) {
        // 初始化分析代码
    }
});

resumos

Um olhar abrangente sobre a API de Regras de Especulação no WordPress e suas implicações

本文介绍了什么是推测规则 API、它的工作原理以及如何在 WordPress 网站上使用它。虽然它仍然是一个实验性功能,但正逐渐被广泛采用。

该插件利用预加载页面上的链接,使页面在用户将鼠标悬停在链接上时预渲染相应的 URL。用户可以在 WordPress 设置中轻松自定义预渲染规则。插件使用正则表达式来设置需要预渲染的链接,并有相应的机制防止过度使用。


Contactar-nos
Não consegue ler o artigo? Contacte-nos para obter uma resposta gratuita! Ajuda gratuita para sítios pessoais e de pequenas empresas!
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correio eletrónico: info@361sale.com
Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados
Publicado por photon fluctuations, retweetado com atribuição:https://www.361sale.com/pt/9828/

Como (1)
Anterior 2024年 5月 16日 pm5:17
Seguinte Sexta-feira, 17 de maio de 2024 às 9:40.

Recomendado

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Contactar-nos

020-2206-9892

QQ咨询:1025174874

Correio eletrónico: info@361sale.com

Horário de trabalho: de segunda a sexta-feira, das 9h30 às 18h30, com folga nos feriados

Serviço ao cliente WeChat
Para facilitar o registo e o início de sessão de utilizadores globais, cancelámos a função de início de sessão por telefone. Se tiver problemas de início de sessão, contacte o serviço de apoio ao cliente para obter assistência na ligação do seu endereço de correio eletrónico.