WP Rocket 近日发布了3.12.x版本,增强了 缓存预加载模块 ,该功能原来的版本一直有,基于Sitemap中的URL进行预加载。但有用户反馈,尽管启用了该项功能,实际上不工作。为了修复这项严重的错误,官方重构了预加载模块。

什么是预缓存?

预缓存是一项非常实用的功能。

缓存到期或缓存被清除后,缓存插件会自动生成新的缓存,这样一来,访客不论什么时候,都将访问到已缓存的网页。大幅提升网页加载速度。

WP Rocket 3.12

8月22日,WP Rocket 3.12 正式发布,但随后的两天内,官方又连续发布了3.12.0.1、3.12.0.2、3.12.0.3三个修复错误的版本。

  • 3.12.0.3 发布日期:2022 年 8 月 24 日
    • 错误修复:从低于 3.12.0.2 的版本更新时正确预加载站点地图(#5337)
    • 修正:使用调试模式时防止错误 ( #5341 )
  • 3.12.0.2 发布日期:2022 年 8 月 23 日
    • 修正:更新到 3.12.0.1 时防止与类型转换相关的 PHP 致命错误(#5330)
    • 错误修正:在导入缓存 webp 选项的设置时防止 PHP 通知 ( #4424 )
  • 3.12.0.1 发布日期:2022 年 8 月 22 日
    • 修正:升级到 3.12 时防止致命错误 ( #5328 )
  • 3.12 发布日期:2022 年 8 月 22 日
    • 增强:新的预加载模块 ( #2678 )
    • 增强功能:将 Monolog 升级到版本 2 ( #5166 )
    • 增强功能:从删除未使用的 CSS 功能中删除 BETA 提示 ( #5260 )
    • 增强功能:删除与旧的 Remove Unused CSS 方法相关的数据库表 ( #5145 )
    • 增强功能:将支持的最低版本提高到 WordPress 5.6 和 PHP7.2
    • 第 3 方兼容性:Covnert Plus 插件和删除未使用的 CSS 功能之间的兼容性 ( #5291 )
    • 修正:更新通知中的断开链接(#5147)

从更新日志中,可以看出,此次3.12.x版本最重要的更新内容是:新的预加载模块、删除未使用的 CSS 功能去掉了BETA标识。

全新的 缓存预加载模块 有什么变化?

开发者重构这个模块的目的

  • 修复所有现有问题。
  • 将 Preload(预加载) 转换为可扩展、稳健、可靠和高性能的功能。

重构修改的内容

  1. 弃用 Preload 文件夹下的所有文件
    • [S] – 弃用 Preload 文件夹下的所有文件并删除与当前预加载系统相关的所有测试。
  2. 缓存预热
    • [M] – 创建一个负责填充 Cache DB 表的新类。这将在 Admin: Cache Warmup 中有一个按钮,它将删除完整的数据库缓存表(或将当前值与标识的新值合并)。单击按钮,预热功能将检查站点地图或创建一个抓取 URL 并将其添加到数据库缓存表中的爬虫。
  3. 同步文件
    • [M] – 如果有人删除完整缓存目录以使完整数据库缓存无效并开始预加载,则需要此选项
    • 最终可能会遇到客户手动删除 /wp-content/cache/wp-rocket 中的所有文件并且我们的数据库表不同步的情况。
    • 在这种情况下,我认为我们需要一个功能来检查文件并将其与我们的数据库表同步。
    • 我想我们应该使用一个计划的事件,如果缓存文件存在于数据库中,它将定期检查(每 12 小时/每小时/每天一次)。如果文件不存在,它将更新丢失的文件(将其设置为过期或从数据库中完全删除该行)
  4. 新预载
    • [M] – 新功能将不允许完全预加载和部分预加载。新功能将是基于数据库缓存表的连续预加载。
    • 创建一个新类 Preload.php,它将负责根据缓存行表预加载单个 URL。如果启用此选项,此类将预加载桌面版和移动版 URL。
    • 创建一个新的控制器 PreloadController.php,它将负责预加载一批 URL(函数 preload_heartbeat()) – 控制器将从缓存数据库中获取下一个 10 -20 – X 过期的缓存文件并预加载这些文件。
    • 为 Preload 创建一个新的订阅者,它将实现 preload_heartbeat() 并将 preload heartbeat JS 脚本排入队列。
    • Preload 将使用与 CriticalPath 完全相同的心跳。
    • 创建一个 JS 文件,该文件将在 Backoffice 中完全按照以下方式运行:\assets\js\wpr-cpcss-heartbeat.js使用 AJAX 调用rocket_preload_heartbeat。

新的缓存预加载模块体验

首先WP Rocket原来的预加载确实在很多情况下不工作,既然新版本已经修复,这里就不介绍旧问题的原因了。

上述插件修改的描述可能很多用户看完无法理解,所以站长帮基于实际测试,介绍一下这个全新的模块。

  1. 首次开启预缓存功能后,WP Rocket会在数据库中创建一张新表,将网站所有需要缓存的URL存储到表中。
  2. 通过AJAX 触发预缓存控制器,检查是否有需要预缓存的内容。
  3. 预缓存控制器将每次从缓存表中载入10-20个URL进行预缓存,直至所有需要缓存的内容全部缓存完毕,不会引发高CPU与内存资源占用。
  4. 这样一来,网站所有需要缓存的内容始终处于被缓存状态。

 

总结

WP Rocket 的这次改进非常棒,从设计机制而言,各方面的功能和逻辑考虑得非常全面。

新的模块刚发布,且官方申明仅提供给25%的用户升级,说明还有改进的可能。期待下一个全用户升级的版本发布。

因为条件的原因,尚未在Windows系统的服务器进行测试。

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源