【发布时间】:2020-03-21 06:07:31
【问题描述】:
我不想关闭网站的缓存,但我确实想避免在某些区域进行缓存。想知道最好的方法。
首先,我从 API 中提取数据以检查顾问的“在线”状态。 接下来,我将它(以及任何其他可能更改的数据)存储在 CPT 中。 同时,我存储了一个随机字符串(我可以稍后对其进行排序,以呈现随机顺序)。
我在每次页面加载时都从 API 中提取数据,因为我需要实时数据。这让我感到畏缩,但我不知道其他方式。这部分没有缓存。
但是,当我显示“顾问”列表时,我按在线状态对它们进行排序,然后是随机字符串。这是为了公平地确定谁在首屏,以及接近结果的开头。
嗯,这些都是用 PHP 生成的,因此生成的 HTML 会被缓存。
我阅读了一些关于 WP Rest API 的信息,也许这有助于提高查询速度,但对缓存的 HTML 没有帮助,对吧?
那么,无论我如何查询数据(REST API、WP_Query),我是否假设我必须使用 JavaScript 遍历数据以避免它被服务器的全页缓存解决方案缓存?
如果我仍然使用 WP_Query,并且我使用 PHP 来显示结果,我可以只从 JavaScript 调用 PHP 函数吗?
网站的每个页面都将显示部分或全部顾问(例如:主页 8 个顾问,“顾问”页面显示所有顾问,“顾问”类别页面,以及每个其他页面页脚中的 4 个顾问),所以关闭缓存没有意义。
任何方向将不胜感激!提前致谢。
【问题讨论】:
-
正确。如果您想规避缓存,则必须通过 AJAX 填充“顾问”列表。这样,您的网站将继续提供 HTML 页面,同时保持一定的动态性。
-
延伸阅读:AJAX in Plugins - WordPress.org(虽然标题包含“插件”一词,但事实是同样的东西也可以应用于主题。)
标签: javascript php wordpress rest caching