我们有一个用 Drupal 6 编写的网站。
我们想使用 Drupal 的缓存机制来提高性能,但是当我们打开它时,我们发现了问题,因为我们的站点在每个页面上都显示了会话数据。Drupal 的缓存系统仅适用于静态内容页面,我们的会话数据有效地意味着我们的页面都不是静态的。
为此,我们提出了两种解决方案:
重写显示会话数据的块,以便它使用 Ajax 加载非静态数据,这样主要的 HTML 内容就是静态的。这样做的缺点是它意味着大量的工作,而且它会减少非启用Javascript 的用户和专业浏览器(即屏幕阅读器)的功能。
将会话数据移动到一个
iframe
或类似的位置。这听起来不对,我不想这样做,但我认为它会解决问题。或者找到一个替代的缓存系统,它允许我们以一种可以处理每个页面上都有一小块动态数据的方式缓存站点。这是我们的首选选项,但我们无法在找到任何东西方面取得任何进展,因此这里提出了问题。
因此,如果有人对选项 3 有任何建议,请告诉我们。谢谢你。
(ps - 我知道 Drupal 7 确实有一个改进的缓存系统可以帮助解决这个问题,但我们还没有准备好迁移到 D7)
[编辑] 在这方面没有太大进展,所以我会开放给赏金。
我研究了 Ubercart 如何处理类似情况(因为它是最流行的 Drupal 模块之一,并且与我们解决的问题基本相同)。他们通过让购物车信息块在用户未登录时显示静态文本(即“单击此处查看您的购物车”)来解决此问题,并且仅在用户登录时在每个页面上显示动态购物车数据。我们不要觉得这实际上解决了问题;它只是逃避它,这不是我们想要的。但我担心,如果 Ubercart 采取这种方式,它可能会成为唯一的选择。