0

我正在开发一个利用该onPrepareContent()事件的 Joomla 插件。但是,我已经确定如果启用了缓存,则不会调度此事件,并且内容被缓存(即 in cache/com_content)。

即使文章被缓存并且文章数据可用,我如何对文章的查看采取行动?(我指定了最后一个条件,否则,我可以只使用系统事件 - 例如 onAfterRoute() 或类似的

4

2 回答 2

1

缓存背后的想法确实是数据被检索一次并提供多次,因此在缓存加载期间它不会在任何地方可用;因此,在您的插件中,您可以使用不同的事件(例如 onAfterRoute())访问数据库并加载文章,但是您当然会减慢您的网站速度,并且可能基于 ajax 浏览器的替代方案可以达到相同的目的(您没有没有澄清)。

如果您只想在有限数量的文章上实现此目的,另一种方法是强制 Joomla 不缓存文章,但这很可能需要核心 hack,并且不会比使用我上面写的插件更快。

于 2013-06-04T07:39:35.563 回答
0

In Joomla 3.4.0, I tried using system events in a content plugin, and they do not fire when the content is cached; only once, when the page is first loaded and cached. After that, they do not fire again. I guess the content plugin only gets invoked when the page is being cached, whatever events it contains.

于 2015-03-25T17:05:48.120 回答