我们有一个用 Drupal 6 编写的网站。
我们想使用Drupal的缓存机制来提高性能,但是当我们打开它时,我们发现了问题,因为我们的站点每个页面都显示会话数据。 Drupal 的缓存系统仅适用于静态内容页面,而我们的会话数据实际上意味着我们的页面都不是静态的。
我们对此提出了两种解决方案:
重写显示会话数据的块,以便使用 Ajax 加载非静态数据,从而使主要 HTML 内容是静态的。这样做的缺点是,这意味着需要做大量的工作,而且会减少不支持 Javascript 的用户和专用浏览器(即屏幕阅读器)的功能。
将会话数据移动到iframe
或类似的。这听起来是错误的,我不想这样做,但我认为它可以解决问题。
或者找到一个替代的缓存系统,该系统允许我们以一种可以处理每个页面上都有一小块动态数据的方式缓存站点。这是我们的首选选择,但我们在寻找任何东西方面未能取得任何进展,因此这里提出了这个问题。
因此,如果有人对选项 3 有任何帮助,请告诉我们。谢谢。
(ps - 我知道 Drupal 7 确实有一个改进的缓存系统,可以帮助解决这个问题,但我们还没有准备好转向 D7)
[编辑]
在这方面还没有取得太大进展,所以我将开放赏金。
我研究过 Ubercart 如何处理类似的情况(因为它是最受欢迎的 Drupal 模块之一,并且与我们要解决的问题基本上相同)。他们通过在用户未登录时让购物车信息块显示静态文本(即“单击此处查看您的购物车”)来解决这个问题,并且仅在用户登录时在每个页面上显示动态购物车数据。不觉得这实际上解决了问题;它只是逃避它,而这不是我们想要的。但我担心,如果 Ubercart 采取这种方式,它可能会成为唯一的选择。
你有没有看过经过身份验证的用户页面缓存(Authcache)模块 http://drupal.org/project/authcache?它的工作原理与您在上面选项 1 中描述的类似。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)