推测性加载

描述

此插件添加了对推测规则API,它允许定义根据用户交互动态预取或预呈现某些URL的规则。

请参阅投机规则WICG规范草案.

默认情况下,该插件被配置为当用户悬停在相关链接上时预呈现WordPress前端URL。这可以通过下的“推测性加载”部分进行自定义设置>阅读.

过滤器可用于排除某些URL路径的预取和预呈现资格(请参阅常见问题部分)。或者,您可以将“nopreferender”CSS类添加到任何链接(<a>标记)不应预先呈现。有关更多信息,请参阅常见问题解答。

浏览器支持

推测规则API是一种新的web API,插件使用的功能在基于Chrome的浏览器中受支持,例如使用121或更高版本的Chrome、Edge或Opera。其他浏览器(如Safari和Firefox)将忽略该功能,不会产生不良影响,但不会从推测性加载中受益。请注意,默认情况下,扩展可能会禁用预加载(例如,uBlock Origin会这样做)。

其他浏览器不会看到任何负面影响,但该功能对这些客户端不起作用。

这个插件以前被称为推测规则。

安装

从WordPress内部安装

  1. 访问插件>添加新插件.
  2. 搜索推测性加载.
  3. 安装并激活推测性加载插件。

手动安装

  1. 上传整个投机规则文件夹到/wp-content/插件/目录。
  2. 访问插件.
  3. 激活推测性加载插件。

常见问题解答

如何防止预取和预呈现某些URL?

并非每个URL都可以合理地预先呈现。预呈现静态内容通常是可靠的,但预呈现交互式内容(如注销URL)可能会导致问题。因此,某些WordPress核心URL,如/wp-login.php型/wp-管理员/*从预取和预呈现中排除。此外,使用wp_nonce_url()(或包含_wpnonce公司查询变量)也被忽略。您可以使用请检查规则href排除路径过滤器。

此示例将确保URLhttps://example.com/cart/https://example.com/cart/foo将从预取和预渲染中排除。

<?php程序添加筛选器(“plsr_speculation_rules_href_exclude_paths”,函数(数组$exclude_path):数组{$exclude_paths[]='/cart/*';返回$exclude_paths;});

请记住,有时将URL排除在预呈现之外,同时仍然允许预取它可能会很有用。例如,使用客户端JavaScript更新用户状态的页面可能不应该预呈现,但预取是合理的。

为此请检查规则href排除路径filter接收当前模式(“预取”或“预呈现”)以提供条件排除。

以下示例将确保URLhttps://example.com/products/。。。无法预呈现,同时仍允许预取。

<?php程序添加筛选器(“plsr_speculation_rules_href_exclude_paths”,函数(数组$exclude_path,字符串$mode):数组{if(“预渲染”===$模式){$exclude_paths[]='/products/*';}返回$exclude_paths;},10,2);

如上所述,添加无前置器链接的CSS类将阻止其预呈现(但不会预取)。此外,与的链接rel=无跟踪既不会预取也不会预呈现,因为一些插件将其添加到非幂等链接中(例如添加到购物车中);理想情况下,这种链接应该是触发POST请求的按钮,或者至少应该使用wp_nonce_url().

这将如何影响分析和个性化?

预渲染会影响分析和个性化。

对于客户端JavaScript,建议延迟这些操作,直到页面单击并且一些解决方案(如Google Analytics)已经为预呈现自动执行了这些操作。请参阅对分析的影响此外,在激活之前不会加载跨原点iframe,这可以进一步避免此处的问题。

悬停时推测(适度)增加了页面加载的机会,在没有此信号的情况下过度预加载,从而降低了风险。或者,该插件只提供了猜测鼠标/指针向下(保守)的功能,这进一步降低了风险,是关注这一点的网站的一个选项,但代价是交付周期缩短,因此性能提升更少。

预呈现的页面链接到预呈现的页面,因此此时可能已经知道个性化,并且更改(例如浏览其他产品或登录/注销)可能需要加载新的页面,因此无论如何都需要新的预呈现,这将考虑到这些。但它确实是需要注意和测试的东西!

我可以在哪里提交插件反馈?

我们鼓励并感谢大家的反馈,特别是因为这个插件可能包含未来WordPress的核心功能。如果您对新功能有建议或请求,您可以将其作为问题提交到WordPress性能团队的GitHub存储库。如果您需要故障排除帮助或对插件有疑问,请在我们的支持论坛上创建一个新主题.

我可以在哪里报告安全漏洞?

性能团队和WordPress社区非常重视安全漏洞。我们感谢您努力负责任地披露您的调查结果,并将尽一切努力感谢您的贡献。

要报告安全问题,请访问WordPress黑客一号程序。

我如何为插件贡献力量?

随时欢迎捐款!了解有关如何参与核心绩效团队手册.

评论

2024年7月19日 1个回复
我正在使用另一个插件,它做了类似的工作,但推测加载似乎要快得多。在大约10个站点上使用,没有问题。谢谢你
2024年5月27日
在Ladzeit für einen Benutzer sichtbar,我们在Hintergrund的Seite gleichschnell geladen wird,所以fühlt是一个极端的Benutzer。
2024年5月8日 1个回复
我目前已经在五个网站上激活了这个插件,其中一些在一个服务器上,另一些在另一个上。该插件尚未出现任何插件冲突或其他问题。根据用户意图,加载页面的时间大大缩短,仅基于此,我再怎么推荐这个插件都不够。我还没有用Lighthouse测试过这些网站,但老实说,我觉得没有必要这样做,因为这首先是关于用户体验的,这是这个插件的一个改进。谢谢您!
阅读全部16条评论

贡献者和开发者

“推测加载”是一种开源软件。以下人员对此插件做出了贡献。

贡献者

“推测性加载”已被翻译成8种语言环境。谢谢你翻译人员感谢他们的贡献。

将“推测性加载”翻译成你的语言。

对开发感兴趣?

浏览代码,查看SVN存储库,或订阅开发日志通过RSS公司.

变更日志

1.3.1

漏洞修补

  • 在排除推测性加载时,请检查rel是否包含nofollow,而不仅仅是nofollown。(1232)

1.3.0

增强功能

  • 防止投机加载指向上传、内容、插件、模板或样式表目录的链接。(1167)
  • 促进在其他插件/主题中嵌入推测性加载。(1159)
  • 通过更严格的静态分析检查提高整体代码质量。(775)
  • 将最低PHP要求提高到7.2。(1130)

1.2.2

漏洞修补

  • 修复href排除路径的组合,以说明JSON编码和不同的站点/主页URL(1164)

文档

  • 使用浏览器支持和有关分析和个性化的常见问题解答部分更新自述文件。(1155)

1.2.1

增强功能

  • 将设置链接添加到推测加载插件操作链接。(1145)
  • 将最低PHP版本提升到7.2。(1130)

漏洞修补

  • 在推测规则中排除wpnoce URL(_W)。(1143)
  • 从预取/预呈现中排除rel=nofollow链接。(1142)

1.2.0

  • 添加缺少的uninstall.php以删除插件的数据库选项。(1128)

1.1.0

  • 允许从预呈现或预取中排除URL模式。(1025)
  • 将插件重命名为“推测加载”。(1101)
  • 添加推测性加载生成器标记。(1102)
  • 将所需的最低WP版本提高到6.4。(1062)
  • 将测试过的WordPress版本更新到6.5。(1027)

1.0.1

  • 转义路径前缀,并将其限制为推测规则中的路径名。(951)
  • 打印JSON脚本时强制HTML5脚本主题支持。(952)
  • 为插件目录添加图标和横幅资产。(987)

1.0.0

  • 投机加载插件作为独立插件的初始版本。(733)