etc-plugins / etc_cache
为 Textpattern CMS 提供事件驱动的缓存解决方案。
Requires
- textpattern/installer: *
- textpattern/lock: >=4.6.0
This package is auto-updated.
Last update: 2024-08-29 03:21:01 UTC
README
此 Textpattern 插件为 Textpattern CMS 提供事件驱动的缓存解决方案。
Textpattern 很快,但当你有数千篇文章时,处理整个列表(例如,创建网站地图)可能会变得耗时。除非你每分钟发布一篇文章,否则缓存处理结果是个好主意。当然,当添加/删除内容/文章时,缓存块必须更新。大多数缓存插件在网站更新后访问相应页面时触发此更新 - 然而,这有两个不便之处
- 第一个访问者必须等待过期块被处理并重新缓存
- 每个网站修改,即使与缓存内容无关,也会导致缓存更新
这就是 etc_cache 旨在解决的问题。
安装
使用 Composer
$ composer require etc-plugins/etc_cache:*
或者从 GitHub 项目页面 下载插件最新版本,将代码粘贴到 Textpattern 插件管理面板中,安装并启用插件。访问 论坛主题 获取更多信息或报告插件的成功或失败。
要求
- Textpattern 4.6.0 或更高版本。
标签
基本用法是
<txp:etc_cache id="heavycode">
...heavy code...
</txp:etc_cache>
属性
id="id name"
此缓存项目的唯一标识符名称。reset="value"
请参阅以下重置信息。time="value"
请参阅以下时间信息。
代码将被处理并缓存,直到网站更新。在网站更新时,如果配置了插件,它将ping包含此块的 URL,触发缓存刷新。因此,缓存将始终保持最新,而不会惩罚网站访客。
要配置自动缓存更新,请访问扩展区域缓存管理面板并编辑每个块的 reset 字段。可能的值包括
- (空):仅在过期时更新客户端,无论网站是否更新
1
:(默认) 如果过期或网站已更新,则更新客户端- 事件列表,如
article_posted, article_saved
或SQL LIKE
模式如article%
:当触发匹配事件时在服务器端更新。
值 %
因此意味着“在每次网站更新时自动更新”,但在客户端也作为 1
。
你可以更具体地指定缓存重置标准。例如,如果你需要块仅在文章 3 更新时重置,设置
reset: article_saved
filter: {"article_saved":{"ID":3}}
你还可以直接将 reset
属性传递给 etc_cache
<txp:etc_cache id="archive" reset="article%">
...heavy code building an articles archive...
</txp:etc_cache>
如果需要,可以向 etc_cache 传递 time
属性
<txp:etc_cache id="dailycode" time="+1 day">
...daily code...
</txp:etc_cache>
时间的一个正值(相对值)将指示缓存(即使是新的)在网站更新时必须重置。
绝对值如 time='<txp:modified format="%F %T" gmt="1" /> +1 month'
将表示“如果一个月内未修改则缓存它”。
负值将不会观察网站更新,例如 (-900
秒等于 15 分钟)
作者/致谢
由 Oleg Loukianov 编写。感谢 所有额外贡献者。