WordPress中的推测加载

WordPress性能团队最近发布了名为“推测加载”的新插件这使得一种同名的新技术能够在页面上自动预呈现某些URL,这可能导致页面加载时间接近即时。该功能由推测规则提供动力美国石油学会美国石油学会 API或应用程序编程接口是一种软件中介,允许程序相互交互并以有限的、明确定义的方式共享数据。是一种新的web API,它允许定义要预取或预呈现的URL类型的规则。

请安装并测试插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件在潜在考虑在WordPress中包含此类功能之前,提供反馈以告知进一步的改进核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。。您可以通过在WP中搜索“推测加载”来安装插件行政管理员 (和超级管理员),或通过性能实验室插件.

WordPress中预取和预呈现的简要历史

几年来,WordPress核心提供了一个简单的资源提示API允许注射<链接>标记到HTML格式HTML格式 超文本标记语言。主要用于在web浏览器中输出内容的语义脚本语言。除其他操作外,可用于预取或预呈现某些资源的文档。虽然预取对于HTML文档的某些子资源(如第三方脚本提供程序)很有用,但预呈现只需处理资源并在屏幕外执行一些呈现,因此对整个网页都很有用。

然而,使用注入方法链接[rel=“预取|预呈现”]标记不是很灵活,因为一旦加载HTML,就需要定义预取或预呈现的URL。提供<链接> 标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。)对于每个潜在的锚链接,用户在页面上单击都是浪费,而不提供任何错过的机会,这是一个性能优化的好机会。到目前为止,解决方案包括快速连接可用于动态插入<链接>标记来预取用户视区中的资源,这更灵活,但仍远远不够理想,因为它可能仍然预取过多资源,并且需要JavaScript脚本JavaScript脚本 JavaScript或JS是一种面向对象的计算机编程语言,常用于在web浏览器中创建交互效果。WordPress广泛使用JS以获得更好的用户体验。当PHP在服务器上执行时,JS在用户浏览器中执行。https://www.javascript.com/.库。

但更重要的是,链接[rel=“prerender”]不会事实上支持预渲染,因为“预渲染”值实际上用于名为无状态预取,这意味着它仍然只是预取某些资源,而不是预渲染它们,例如,预渲染将包括运行JavaScript。最后但并非最不重要,“prerender”值已弃用此时。

投机规则API简介

这个推测规则API是一个解决上述问题的新web API。它允许定义规则,根据用户交互动态预取和/或预呈现特定结构的URLJSON格式JSON格式 JSON或JavaScript对象表示法是一种用于结构化数据的最小可读格式。它主要用于在服务器和web应用程序之间传输数据,作为XML的替代。句法或换句话说,推测地在导航之前预加载这些URL。例如,只要用户将鼠标悬停在页面上,就可以使用此API预呈现页面上的任何链接。此外,使用推测规则API,“预呈现”事实上表示预呈现整个页面,包括运行JavaScript。一旦用户点击链接,这可能会导致几乎即时的加载时间,因为页面很可能已经全部加载。然而,这只是可能的配置之一。

以下代码示例显示了推测规则API JSON规范的一般语法,并概述了预呈现除WP Admin或登录URL以外的任何链接的配置。

<script type=“推测规则”>{“预渲染”:[{“source”:“文档”,“其中”:{“和”:[{“href_matches”:“/*”},{“不”:{“href_matches”(阈值匹配):[“/wp-login.php”,“/wp-admin/*”]}}]},“急切”:“适度”}]}</script>

推测规则API允许定义URL模式对于哪种URL应该可以进行推测加载。规则可以配置为预取或预呈现特定统一资源定位地址统一资源定位地址 互联网上网站或网页的特定网址,例如网站的URL www.wordpress.org模式。还可以指定所谓的“急切度”值,该值指示应用预取或预渲染的急切程度。例如,当用户将鼠标悬停在链接上时,值“中等”将触发推测加载。值为“conservative”会延迟此操作,直到用户单击链接(这仍然会提供相当好的性能优势),而值为“eagent”会在用户单击链接时立即执行操作。请注意,建议特别注意“急切”配置,因为它增加了浪费加载URL的可能性。

浏览器支持

虽然推测规则API在Chrome和Edge中可用自109版起,解锁上述功能所需的特定子功能称为“文档规则”最近在版本121中添加.本文介绍了最新的增强功能更深入地了解API。

换句话说,在撰写本文时,最终用户需要使用Chrome 121+或Edge 121+才能获得此功能的好处。然而,这对其他浏览器上的用户没有不利影响,因为这是一个渐进的过程增强增强 增强是对WordPress的简单改进,例如添加挂钩、新功能或对现有功能的改进。因此,无论用户群如何,在网站上使用推测规则API都是安全的。

推测规则API是在W3C web标准会议TPAC 2023上提出,接收良好。此时,标准处于草稿阶段关于API的立场Firefox浏览器游猎已被请求。要具体跟踪本文中概述的功能所需的子功能,可以参考这张“我能用吗”桌子.

推测性加载WordPress插件

如本文开头所述,WordPress性能团队最近发布了一个新功能插件“推测加载”它允许推测加载页面上链接的其他前端URL。它插入了一个类似于前面代码示例的JSON脚本。默认情况下,页面上链接的所有URL都会预先呈现为“适度”的急切配置,这通常会在将鼠标悬停在链接上时触发。因此,激活插件后您不需要做任何事情:它只是开箱即用。该插件还提供了一些自定义选项,以根据站点所有者的偏好调整行为。

推测加载插件的设置用户界面用户界面 用户界面

可以通过中新的“推测加载”部分修改默认行为设置>阅读屏幕。例如,如果站点使用的JavaScript还不适合在预呈现时加载,则可以将插件配置为仅预取文档。可以将急切程度设置为“保守”,以减少在用户没有导航到URL的情况下加载URL的可能性。或者,可以将其设置为“渴望”,以增加用户登录链接URL时已经完成推测加载的机会,然而,这会冒着浪费加载多个资源的风险。“适度”的默认在可持续性和绩效之间取得了良好的平衡。

可以使用滤波器过滤器 过滤器是两种挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。称为“plsr_speculation_rules_href_exclude_paths”。例如,将URL添加到WordPress站点的插件可以使用该过滤器将这些URL从预呈现或预取中排除。 

下面是一个代码示例,它可以确保URLhttps://example.com/cart/https://example.com/cart/foo/将从预取和预渲染中排除:

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

请参阅插件的常见问题解答,了解过滤器的详细信息.

潜在的后续步骤

目前,该插件应该用于测试该功能,性能团队渴望收到反馈,并分析插件在加载时的性能优势。

接下来,随着浏览器API和插件的成熟,将探索在WordPress核心中包含该功能的可能性。然而,为了达到目的,还需要额外的反馈。

测试和反馈

在探索其在WordPress核心中的潜在用途之前,您的测试和反馈对于改进该功能至关重要。请考虑以下帮助方式:

WordPress性能团队很高兴了解更多关于推测规则API如何在WordPres网站中使用的信息。请尝试插件并分享您的反馈!

道具@亚当西尔弗斯坦 @家蝇科昆虫 @杰里米 @瑞士风格 @调整网络 @粗花呢 @威斯顿鲁特用于审核和校对。

#特色项目,#性能,#性能指标,#投机性负荷

关于在WordPress核心中使用fetchpriority属性增强LCP图像性能的建议

此帖子建议添加fetchpriority=“高”属性到LCP公司WordPress中的图像核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。以提高LCP性能。该提案是核心绩效团队成员之间的合作。

上下文

这个获取优先级属性是标准HTML属性它可以用于向浏览器指示给定资源在应考虑加载时应具有特定优先级。最常见的是,建议使用属性值为“high”,仅在页面上最重要的图像上使用。

这是一种性能最佳实践fetchpriority=“高”在单个图像上,该图像是HTML格式HTML格式 超文本标记语言。主要用于在web浏览器中输出内容的语义脚本语言。标记,以向浏览器指示此图像应优先于与之竞争的其他资源网络网络 (相对于网站、博客)带宽。

含量最高的油漆(LCP)是三个之一核心网络要素度量,它表示web页面的主要内容加载的速度。具体来说,LCP测量从用户开始加载页面到最大图像或文本的时间 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。在视口中渲染。

引用自这篇关于优化LCP的文章

如上所述,最大内容绘制元素可以采用不同的形式,它可以是图像、文本、视频或其他资源。然而,WordPress网站上最常见的LCP元素是图像,具体来说,42.4%在桌面上,38.2%在手机上基于HTTP存档2023年2月的数据在这些网站中,只有不到0.03%的网站fetchpriority=“高”所以可以肯定地说,在WordPress核心中引入支持将使几乎所有人受益。

您可以了解有关获取优先级属性以及如何使用它来优化中的图像性能这篇文章.

建议的解决方案

WordPress核心已经提供了一种机制,可以检测哪些图像不会延迟加载,因为它们很可能位于视口中,其中包括潜在的LCP图像。带来fetchpriority=“高”WordPress核心中的图像应该利用现有的逻辑加载属性,它是在WordPress 5.9中添加但是,这两个属性仍应独立运行。此外,还需要考虑一些其他方面,并将其作为仅适用于获取优先级属性,但不是加载属性。

最初,这两个属性看起来可能是对立的。应该延迟加载的图像不应该具有高优先级,并且vice-versa。的用法fetchpriority=“高”然而,需要更加细致入微:它应该只加载在页面上最重要的单个图像上。这与加载=“惰性”在折叠上方的任何图像上都应该省略这一点,有时可能只是LCP图像,而在其他情况下可能是多个图像。

换句话说,fetchpriority=“高”只应出现在单个图像上至多。

范围

获取优先级属性可用于几个不同的HTML元素,本建议的范围仅限于在图像上使用该属性,特别是将其添加到页面的可能LCP图像中,以便浏览器知道比其他可能与其竞争的资源更早加载它。

性能影响

根据核心绩效团队成员执行的基准,添加fetchpriority=“高”无导线心脏起搏器图像通常可将无导线心脏起搏器的性能提高5-10%,这对于为图像添加简单属性来说是一个显著的胜利标签标签 Subversion中的目录。WordPress使用标签来存储版本(3.6、3.6.1等)的单个快照,这是版本控制系统中标签的常见约定。(不要与帖子标签混淆。)。在某些情况下,增强甚至可以接近30%,例如上述文章中的示例.

浏览器兼容性

获取优先级attribute是2022年首次引入的一个相对较新的属性2023年2月标准化所有基于Chromium的浏览器都支持,约占浏览器使用量的70%基于caniuse.com网站。支持是最近在WebKit中添加,当前为Safari 167技术预览版中提供.Firefox表示了积极的反馈功能,以及支持它是可用的。尽管不是每个主要浏览器都支持该属性,但它是一个渐进的增强增强 增强是对WordPress的简单改进,例如添加挂钩、新功能或对现有功能的改进。,即完全向后兼容:不理解属性的浏览器将忽略它,并且它的存在不会造成任何负面影响。

实际上,此增强只是为了添加fetchpriority=“高”属性设置为LCP映像,这不会造成破坏向后兼容性的任何风险。

默认行为和自定义

类似于WordPress核心处理省略加载属性,它应该添加获取优先级默认情况下,基于服务器端启发在LCP图像上设置属性。虽然精确的启发式仍在定义中,但应该注意,这两个属性永远不会用于同一图像,因为它们应该是互斥的。

开发人员将能够自定义属性的使用位置,例如在使用函数时wp_get_attachment_image()get_the_post_thumbnail(),这两者都应该得到属性的支持。将属性默认添加到内容内图像也可以使用新的滤波器过滤器 过滤器是两种挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。,这可能类似于现有的图像属性过滤器,如wp_img_tag_add_loading_attrwp_img标签添加宽度和高度属性.

考虑的备选方案

或者fetchpriority=“高”,图像也可以通过其他方式进行优先级排序,例如链接[rel=“preload”]头部标记,或链接响应收割台收割台 你网站的标题通常是人们第一次体验到的东西。位于页面顶部的刊头或页眉是网站外观的一部分。它可以影响访问者对您的内容和您/您组织的品牌的看法。它在不同的屏幕尺寸上也可能看起来不同。虽然这两种方法原则上允许浏览器更早地知道如何加载图像,但实际上并没有显著区别,尤其是在使用标记时,因为此时已经加载了整个HTML。

这两种替代方法都需要WordPress核心在页面加载生命周期中了解图像,然后才能将其包含在输出中,这使得它们的实现更加复杂,因为使用它会带来很少的好处fetchpriority=“高”在实际的图像标签上。

贡献并测试此增强功能

已经可以通过性能实验室插件,通过启用其获取优先级模块或者通过Fetchpriority独立插件它使用相同的底层逻辑。应该注意的是,该实现仍在使用额外的启发式方法进行细化,以检测LCP图像,并且由于它是插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件与WordPress核心不同,上述定制选项不能作为早期实现的一部分。此外,需要注意的是,插件实现在很大程度上依赖于WordPress核心的延迟加载启发式,而最终核心实现的计划是将两者解耦。

WordPress核心Trac公司Trac公司 Edgewall Software的一个开源项目,用作WordPress的错误跟踪和项目管理工具。 为bug报告和bug跟踪器上的功能开发创建。 #58235已经打开,WordPress核心的拉入请求,包括前面提到的自定义选项将很快处理。
非常感谢您的测试和反馈。请在评论中分享您的想法、问题和想法插件支持论坛wordpress.org网站WordPress.org网站 用户创建和共享WordPress代码的社区网站。您可以在这里下载WordPress核心、插件和主题的源代码,以及社区对话和组织的中心位置。https://wordpress.org/,或在GitHub存储库.

道具到@推特新闻 @亚当西尔弗斯坦 @阿多约斯马尼 @乔麦吉尔 @第12章用于审核和校对。

#获取优先级,#图像,#媒体,#性能,#性能指标

WordPress 6.1中的新缓存站点健康检查

作为WordPress 6.1版本的一部分绩效团队添加了两个站点运行状况检查(持久对象缓存和页面缓存)。这些检查之前在性能实验室插件。你可以在原文中阅读更多有关它们的信息建议.

这两项检查都将仅在生产环境中运行。

持久对象缓存

这个新的检查确定站点是否使用持久对象缓存,如果它对站点有意义,则建议使用它。它还链接到支持资源为检查创建。

包含了一些过滤器,旨在为托管提供商提供有关其环境的更具体步骤。

主机可以使用站点状态持久对象缓存url 滤波器过滤器 过滤器是两种挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。用他们自己的指南替换原来的WordPress指南。

/***筛选持久对象缓存URL。*/add_filter('站点状态_persistent_object_cache_url',函数(){返回'https://awesomewphosting.com/optimization/persistent-object-cache';} );

主机可以使用站点状态持久对象缓存注释筛选以自定义注释以推荐其首选对象缓存解决方案。

/***更新持久对象缓存注释。*/add_filter('site_status_persistent_object_cache_notes',函数($notes){$notes=__('更新的注释可以作为文本转到此处。','文本域');返回$notes;} );

这个站点状态持久对象缓存阈值过滤器允许修改超过WordPress认为使用持久对象缓存有益的阈值。

/***根据需要覆盖整个$thresholds数组或任何特定索引。*/add_filter('site_status_persistent_object_cache_thresholds',函数($thresholds){$thresholds=阵列('alloptions_count'=>600,'分配字节'=>200000,'comments_count'=>2000,“options_count”=>2000,“posts_count”=>2000,'terms_count'=>2000,“users_count”=>2000,);返回$thresholds;} );

或者,站点状态应该建议持久对象缓存是一个短路过滤器,它允许使用完全自定义的逻辑来确定持久对象缓存是否对站点有意义。

/***选择建议持久对象缓存*/add_filter('站点状态should_suggest_persistent_object_cache','__return_true');

有关此新检查的其他上下文,请参阅#56040.

整页缓存

此新检查确定站点是否正在使用整页缓存解决方案,以及响应时间是否可以接受。

它还添加了一些过滤器,旨在让托管公司自定义响应阈值,并添加自己的缓存头以进行检测。

这个站点状态良好响应时间阈值filter允许修改600毫秒的电流阈值。低于此值的所有内容都将被视为可接受。

/***过滤响应时间阈值*/add_filter('站点状态_good_response_time_threshold',函数(){返回200;} );

可以通过站点状态页面缓存支持的缓存头过滤器。

/***筛选页面缓存支持的缓存标头*$cache_headers包含客户端缓存标头及其(可选)验证回调的列表。*/add_filter('site_status_page_cache_supported_cache_headers',函数($cache_headers){//将新标题添加到现有列表中。$cache_headers['cf-cache-status']=静态函数($header_value){返回false!==strpos(strtolower($header_value),'hit');};返回$cache_headers;});

有关此新检查的其他上下文,请参阅#56041.

多亏了@弗利克索斯90,@米兰_卡普,@spacedmonkey(空格键)供同行审查,以及@pushpakpop按钮用于代码示例。

#6-1,#核心-现场-健康,#开发说明,#开发注释6-1,#性能,#性能指标,#现场健康

建议:持久对象缓存和整页缓存站点健康检查

本提案旨在将持久对象缓存和整页缓存的两个新站点健康检查集成到WordPress中核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。,针对WordPress 6.1版本。

上下文

为网站所有者提供有价值的建议对提高WordPress性能至关重要。这两个模块是性能团队的一系列站点健康模块中的第一个模块正在处理承认绩效问题是解决问题的第一步。

这些模块最初由绩效团队成员提出并开发,可作为模块在性能实验室插件.

项目更新

功能的开发在GitHub上的性能实验室插件库,其中已实施为:

最新发布的1.2.0版性能实验室插件包含处于准备合并到核心状态的两个模块。 

该团队目前正在将模块代码迁移到WordPress核心补丁中Trac公司Trac公司 Edgewall Software的一个开源项目,用作WordPress的错误跟踪和项目管理工具。门票:

  • 性能的永久对象缓存运行状况检查插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件至核心(#56040)
  • 从性能插件到核心的端口审核整页缓存(#56041)

非常感谢对核心补丁的任何评论和反馈。

自定义审核

我们添加了一系列过滤器,使消息和建议可以自定义。托管提供商可以使用这些筛选器提供他们自己的个性化建议,以解决网站健康反馈问题。

持久对象缓存筛选器

主机可能希望替换注释以推荐其首选的对象缓存解决方案:

应用过滤器('site_status_persistent_object_cache_notes',$notes,$available_services);

主持人可能希望将WordPress文档的原始链接替换为指向自己指南的链接:

应用过滤器('站点状态持久对象缓存url',__('https://wordpress.org/support/article/optimization/#object-缓存');

主机或站点所有者可能希望绕过阈值并强制建议,或者滤波器过滤器 过滤器是两种挂钩之一https://codex.wordpress.org/Plugin_API/挂钩。它们为函数修改其他函数的数据提供了一种方法。它们是Actions的对应物。与Actions不同,过滤器是以孤立的方式工作的,不应该有副作用,例如影响全局变量和输出。以确定是否建议使用持久对象缓存:

应用过滤器('站点状态建议持久对象缓存',假);
应用筛选器('站点状态持久对象缓存阈值',阵列('选项计数'=>500,“alloptions_bytes”=>100000,“comments_count”=>1000,“options_count”=>1000,“posts_count”=>1000,'terms_count'=>1000,“users_count”=>1000,));

整页缓存筛选器

开发人员可以筛选响应时间低于的阈值:

应用过滤器('页面缓存良好响应时间阈值',600);

测试和反馈

您可以在v1.2.0或更高版本的性能实验室插件。默认情况下,这两个模块都应启用,但您可以再次检查它们是否在中启用设置>性能:

启用后,您可以在站点运行状况屏幕上的以下位置查看测试结果:工具>站点运行状况>状态.

我们鼓励您从性能实验室插件测试这些模块(和其他模块),报告中的任何错误我们的GitHub存储库或提供修复和想法。您还可以在评论中分享任何反馈、顾虑或问题,以进一步改进这些功能。

多亏了@mxbclang语言@弗利克索斯90供同行审查。

#6-1,#核心-现场-健康,#性能,#性能指标,#现场健康

发布的Performance Lab插件1.0.0版

性能实验室的第一个稳定版本1.0.0插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件已发布。你可以下载它从WordPress插件库通过GitHub.

稳定的版本意味着性能实验室插件的基础设施现在已不可用贝塔贝塔 一种预先发布的软件,分发给大量用户在真实条件下进行试用。Beta版已经在内部进行了alpha测试,在外观、感觉和功能上与最终产品相当接近;然而,设计更改经常作为过程的一部分发生。测试阶段。该插件的主要目的仍然是为了方便将来的WordPress测试核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。性能功能和增强功能,如原始插件公告帖子插件的初始测试阶段主要是为了让性能团队能够发现早期的基础设施错误,并在稳定发布之前修复它们。

包含的模块

1.0.0版本中包含以下模块:

  • WebP上传:如果服务器支持,则为新JPEG图像上载创建WebP版本。查看相关GitHub问题
  • WebP支持:在站点运行状况状态中添加WebP支持检查。查看相关GitHub问题
  • 持久对象缓存运行状况检查:为站点运行状况状态下具有非平凡数据量的站点添加持久对象缓存检查。查看相关GitHub问题
  • 审核自动加载选项(实验性):添加站点运行状况状态下自动加载选项的检查。查看相关GitHub问题
  • 审计排队资产(实验性):添加一个CSS公司CSS公司 级联样式表。JS公司JS公司 JavaScript是一种通常在浏览器中执行的web脚本语言。通常用于高级用户界面和行为。站点运行状况状态下的资源检查。查看相关GitHub问题

接下来的步骤

绩效团队将继续增强现有模块,并评估未来要添加的其他模块。即将发布的版本的节奏和版本策略目前正在讨论中。请提供您的反馈本期插件版本如果你感兴趣的话。有一个正在就该问题进行投票营业至2022-05-02 17:00 UTC.


感谢所有为性能实验室插件到目前为止,这是第一个稳定的版本!让我们继续测试和迭代各个功能,使每个功能更接近最终的WordPress核心合并。

道具到@mxbclang语言 @亚当西尔弗斯坦 @杰夫保罗以供审查和校对。

#功能插件,#特色项目,#性能,#性能指标

性能实验室插件已发布

性能实验室简介插件插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是来自第三方的基于成本的插件:在WordPress性能团队从2021年11月开始,插件的第一个版本终于发布了,可以测试了。你可以下载它或直接从WordPress仪表板安装。您的测试和反馈将允许在WordPress中迭代添加未来的性能优化核心核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。.

什么是性能实验室插件?

性能实验室插件是一组旨在提高WordPress性能的模块。虽然这听起来可能与WordPress生态系统中的许多其他性能插件类似,但性能实验室插件的存在有着完全不同的目的:它是一个收集与绩效相关的“特色项目”用于WordPress核心。

功能项目旨在聚集一群人来探索WordPress核心的潜在想法。

功能项目概述

历史上,功能项目通常作为单独的功能插件实现。性能实验室插件为性能相关功能提供了一个集中的位置,这些功能最终将合并到WordPress核心中。因此,它应该被视为贝塔贝塔 一种预先发布的软件,分发给大量用户在真实条件下进行试用。Beta版已经在内部进行了alpha测试,在外观、感觉和功能上与最终产品相当接近;然而,设计更改经常作为过程的一部分发生。-测试插件。插件的性能模块可以在插件的设置屏幕中单独启用,以便单独或组合测试。能够激活/停用模块类似于激活单个插件,但性能实验室方法也有好处:对于开发人员和最终用户来说,它消除了跟踪多个插件的负担。对于开发人员来说,它还减少了维护并鼓励开发人员之间的协作。

插件的“设置”>“性能”屏幕,带有可单独打开和关闭的模块列表
性能实验室插件的设置屏幕

性能实验室插件采用单插件方法的另一个好处是,它为实验提供了空间。插件中包含的一些模块被明确标记为实验性的,虽然整个插件用于测试WordPress性能特性,但这些模块还处于探索的早期阶段,因此可能会导致意想不到的结果性能实验室插件中捆绑的性能模块处于不同的开发阶段例如,一些可能已经是WordPress的官方核心功能项目,其他可能在不久的将来被提议作为功能项目。一些实验模块可能会在未来几个月内继续探索。

由于Performance Lab插件是潜在WordPress核心功能模块的集合,因此所包含的模块列表可能会随着时间的推移发生巨大变化。新模块可能会定期添加,而其他模块可能会在WordPress核心版本中登陆后在未来的插件版本中删除。还要记住性能实验室插件不能完全替代其他WordPress性能插件您可能已经在使用了。

谁开发性能实验室插件?

性能实验室插件正由WordPress绩效团队成立于2021年10月底。插件是主要项目正在探索和实施新性能特性的团队。它补充了对WordPress核心的直接贡献,这是针对较小的修复或已经在插件中进行了重要测试的功能。

插件中包含的模块基于性能团队贡献者的优先级,他们每周在#性能松弛通道讨论正在进行的工作和优先事项。性能团队在确定工作优先级时考虑了不同功能的影响,所包含的模块也受贡献者兴趣的影响。到目前为止,已有250多人参加了演出松弛(Slack)松弛(Slack) Slack是一个协作群聊平台https://slack.com/WordPress社区在https://make.wordpress.org/chat/.渠道,其中许多人参与了每周聊天和报告GitHub上的问题虽然到目前为止,对插件的代码贡献仅限于略多于10个贡献者,但性能团队相信,随着时间的推移,代码贡献量将增加,特别是当插件开始使用量增加时。

此初始性能实验室插件版本具有哪些功能?

性能实验室插件(1.0.0-beta.1)的这个初始版本附带以下模块:

  • WebP上传:如果服务器支持,则为新JPEG图像上载创建WebP版本。查看相关GitHub问题
  • WebP支持:在站点运行状况状态中添加WebP支持检查。查看相关GitHub问题
  • 持久对象缓存运行状况检查:为站点运行状况状态下具有非平凡数据量的站点添加持久对象缓存检查。查看相关GitHub问题
  • 审计排队资产(实验性):添加一个CSS公司CSS公司 级联样式表。JS公司JS公司 JavaScript是一种通常在浏览器中执行的web脚本语言。通常用于高级用户界面和行为。站点运行状况状态下的资源检查。查看相关GitHub问题

要测试WebP上传模块,请将一些JPEG图像上传到媒体库,模块应确保在WebP中也生成了子大小的版本,然后在将这些上传的图像嵌入到帖子中时在前端使用。

要测试其他三个模块,请访问站点运行状况状态选项卡,其中每个模块添加相应的新检查:

  • 审核已排队的资产模块监控在主页上排队的脚本和样式表的数量。
  • WebP支持模块检查您的服务器环境是否支持创建WebP映像。
  • 持久对象缓存运行状况检查根据站点上的数据量促进外部对象缓存的使用。

请记住,您要测试的每个模块都必须通过插件的设置屏幕激活,网址为设置>性能。默认情况下启用非实验模块。如果要单独测试模块,可以逐个切换它们。

要了解有关模块的更多信息,可以使用githubgithub GitHub是一个提供git存储库在线实现的网站,其他开发人员可以轻松共享、复制和修改这些存储库。公共存储库是免费托管的,私人存储库需要付费订阅。GitHub引入了“拉请求”的概念,在将贡献者在分支中所做的代码更改合并为存储库所有者之前,可以对其进行审查和讨论。https://github.com/标签可以通过上面列表中的链接跟踪其发展。您还可以查看完整的发布变更日志.

如何支持性能实验室插件?

由于性能实验室插件是一个测试插件,最直接的贡献方式是使用它! 测试各个模块,尝试打破它们,探索边缘案例等。任何反馈或缺陷缺陷 错误是错误或意外结果。性能改进、代码优化和被视为增强,而不是缺陷。功能冻结后,只处理错误,回归(与前一版本相反的更改)是最高优先级。欢迎提供报告GitHub问题或者作为替代wordpress.org支持论坛请求。如果您发现了一个bug,并且已经发现了它的修复程序,您可以提交一个拉入请求。还邀请您在回顾最后,分享新闻!只有有了固定数量的测试人员,这个插件的功能才能随着时间的推移而成熟。

如果你想参与开发或塑造插件的方向,性能团队会很高兴让你加入每周的聊天#性能松弛通道! 下一场比赛将在2022年3月8日16:00 UTC.

插件的另一个贡献是本地化。如果您会说英语以外的语言,请帮助您在区域设置区域设置 语言环境是语言和地区方言的组合。通常,语言环境与国家相对应,葡萄牙语(葡萄牙)和葡萄牙文(巴西)就是这样。其他语言环境示例包括加拿大英语和美国英语。通过贡献翻译.


非常感谢所有为性能实验室插件做出贡献的社区志愿者,以及迄今为止性能团队的整体努力!这个测试版是一个重要的里程碑,只是一个开始——让我们从这里继续。

道具到@阿多约斯马尼 @乔诺埃尔德斯杨 @推特新闻 @mxbclang语言 @亚当西尔弗斯坦 @克拉克家族 @米托 @丹妮梅尔 @贾斯汀纳希农以供审查和校对。

#功能插件,#特色项目,#性能,#性能指标