我正在使用一个使用onPrepareContent()
事件的Joomla插件。但是,我已确定如果启用了缓存,则此事件会不,并且内容会被缓存(即cache/com_content
)。
如果文章被缓存,并且文章数据可用,我如何才能查看文章? (我指的是最后一个条件因为,否则,我可以使用系统事件 - 例如onAfterRoute()或类似的)
答案 0 :(得分:1)
缓存背后的想法确实是数据被检索一次并多次提供,因此在缓存加载期间它无法在任何地方使用;所以在你的插件中你可以访问数据库并使用不同的事件(例如onAfterRoute())加载文章,但当然你正在放慢你的网站速度,并且可能基于ajax浏览器的替代方案可以实现同样的目的(你还没有澄清)。
另一种方法是强迫Joomla不要缓存文章,如果你只想在有限数量的文章上实现这一点,但这很可能需要核心攻击,并且它不会比使用插件更快。上面写道。
答案 1 :(得分:0)
在Joomla 3.4.0中,我尝试在内容插件中使用系统事件,并且在缓存内容时不会触发;首次加载和缓存页面时,只有一次。在那之后,他们不会再次开火。我想内容插件只在页面被缓存时被调用,无论它包含什么事件。