0

我有一个提供块的模块。该块设置为 BLOCK_NO_CACHE,其内容是从函数中提取的。它允许站点管理员创建一个“消息”以显示在站点上,有点像 CNN,其中一个重大更新显示在顶部,用户可以通过点击 X 来关闭它。当他们关闭它时,会写入操作并将 UUID 写入他们的 cookie,因此他们不会再看到该消息。

我收到来自 Boost 用户的报告,当有人关闭一条消息时,它会为所有人关闭它。我认为这是因为 Boost 正在缓存页面并在有人关闭消息后提供缓存页面。

如何使我的模块适用于使用 Boost 的人?

我想也许 hook_boot 可能会起作用,但是,我又不确定是否有更好的方法来解决这个问题。

4

1 回答 1

1

hook_boot 不会这样做。一旦该页面在缓存中,就不会运行 PHP。您需要通过 AJAX 加载该块,因为该块的状态取决于 cookie。 http://drupal.org/project/ajaxblockshttp://drupal.org/project/ajaxify_regions 是 2 个很容易做到这一点的项目。

如果页面被缓存,也很难获得突破性更新。varnish 用户也会遇到类似的问题。

于 2010-11-18T10:32:12.130 回答