在每个页面上缓存包含特定于会话的数据的 Drupal 站点

2024-03-30

我们有一个用 Drupal 6 编写的网站。

我们想使用Drupal的缓存机制来提高性能,但是当我们打开它时,我们发现了问题,因为我们的站点每个页面都显示会话数据。 Drupal 的缓存系统仅适用于静态内容页面,而我们的会话数据实际上意味着我们的页面都不是静态的。

我们对此提出了两种解决方案:

  1. 重写显示会话数据的块,以便使用 Ajax 加载非静态数据,从而使主要 HTML 内容是静态的。这样做的缺点是,这意味着需要做大量的工作,而且会减少不支持 Javascript 的用户和专用浏览器(即屏幕阅读器)的功能。

  2. 将会话数据移动到iframe或类似的。这听起来是错误的,我不想这样做,但我认为它可以解决问题。

  3. 或者找到一个替代的缓存系统,该系统允许我们以一种可以处理每个页面上都有一小块动态数据的方式缓存站点。这是我们的首选选择,但我们在寻找任何东西方面未能取得任何进展,因此这里提出了这个问题。

因此,如果有人对选项 3 有任何帮助,请告诉我们。谢谢。

(ps - 我知道 Drupal 7 确实有一个改进的缓存系统,可以帮助解决这个问题,但我们还没有准备好转向 D7)

[编辑] 在这方面还没有取得太大进展,所以我将开放赏金。

我研究过 Ubercart 如何处理类似的情况(因为它是最受欢迎的 Drupal 模块之一,并且与我们要解决的问题基本上相同)。他们通过在用户未登录时让购物车信息块显示静态文本(即“单击此处查看您的购物车”)来解决这个问题,并且仅在用户登录时在每个页面上显示动态购物车数据。不觉得这实际上解决了问题;它只是逃避它,而这不是我们想要的。但我担心,如果 Ubercart 采取这种方式,它可能会成为唯一的选择。


你有没有看过经过身份验证的用户页面缓存(Authcache)模块 http://drupal.org/project/authcache?它的工作原理与您在上面选项 1 中描述的类似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在每个页面上缓存包含特定于会话的数据的 Drupal 站点 的相关文章

  • Ehcache 2.1是否支持Hibernate 3.3.2GA中的事务缓存并发策略?

    Does 以太网缓存2 1 http dsoguy blogspot com 2010 04 ehcache 21 beta lots of stuff still html现在支持事务缓存并发策略 http docs jboss org
  • 现代缓存中的方式预测

    我们知道 就缓存命中时间而言 直接映射缓存优于集合关联缓存 因为不涉及特定标签的搜索 另一方面 组关联缓存通常比直接映射缓存具有更好的命中率 我读到 现代处理器试图通过使用一种称为路径预测的技术来结合两者的优点 他们预测给定集合中最有可能发
  • 哪个对缓存最友好?

    我试图很好地掌握面向数据的设计以及如何在考虑缓存的情况下进行最佳编程 基本上有两种情况我无法完全确定哪个更好以及为什么 是拥有一个对象向量更好 还是拥有对象原子数据的多个向量更好 A 对象向量示例 struct A GLsizei mInd
  • IISreset和应用程序池回收对缓存的影响有什么区别

    我遇到了一个奇怪的问题 据我所知 可以通过回收应用程序池来清除缓存 然而 在最近的一个项目中 缓存并没有以这种方式清除 相反 我们必须重置 IIS 以清除缓存 这些行为之间有什么区别 造成我所经历的差异的原因可能是什么 当您回收AppPoo
  • Drupal 功能包括主题

    是否可以在 Drupal 功能中包含主题 如果是这样怎么办 不幸的是 目前还没有 功能基本上由可以通过各种事件挂钩干净地从 Drupal 导出或导入到 Drupal 的内容组成 主题是完全不同的动物 理论上 如果您想覆盖功能中的某些标记 例
  • 缓存行对齐(需要文章澄清)

    我最近在我的应用程序中遇到了我认为是错误共享的问题 我查了一下关于如何将我的数据与缓存行对齐 他建议使用以下 C 代码 C using C 0x alignment syntax template
  • 清除另一个应用程序的 Symfony 缓存

    我想通过后端应用程序中的操作清除前端应用程序的缓存 我怎样才能实现这个目标 我相信在 symfony 1 2 中执行此操作的正确方法如下 sfContext switchTo frontend switch to the environme
  • 身份验证错误:无法响应以下任何质询:{} Android - 401 Unauthorized

    身份验证错误 无法响应以下任何质询 Android 401 Unauthorized 我已从此链接参考在 Android 上使用 HttpPost 和 DefaultHttpClient 时出现身份验证错误 https stackoverf
  • 我是否应该将 CachingConnectionFactory 与 hornetq 2.4.1 一起使用

    根据有关在 hornetq 中使用 JMSTemplate 的长期信息 我们在连接到服务器时一直使用 CachingConnectionFactory 这是一个示例配置 与我们正在使用的配置非常相似
  • 是否可以使用 Drupal api 获取用户列表?

    我想获取已分配特定角色的所有用户的列表 我可以编写自己的 SQL 但我想尽可能多地使用 api 您可以使用entity load来获取用户数组 这是将为管理员用户创建所有电子邮件列表的示例 用于发送通知
  • GitHub Actions:如何缓存测试容器的 Docker 映像?

    我使用 Testcontainers 在 GitHub Actions 中执行一些测试 Testcontainers 提取我的测试中使用的图像 不幸的是 每次构建时都会再次提取图像 如何在 GitHub Actions 中缓存图像 GitH
  • 在 SPA 中加载外部脚本和样式文件

    我有一种 SPA 它使用 API 来获取数据 该 SPA 有一些实例 它们都使用通用样式和脚本文件 所以我的问题是 当我更改这些文件中的一行时 我将必须打开每个实例并更新文件 这对我来说真的很耗时 一种方法是将这些文件放在服务器中的文件夹中
  • 不可靠网络和低带宽的 Java ORM 策略

    我正在寻找 Hibernate 作为需要在不可靠网络中工作的系统 我们需要对一个中央数据库进行读写访问 但它可以通过一个相当不稳定的 Wi Fi 网络来访问 此外 可能会出现断电而导致应用程序无法完全关闭的情况 因此任何解决方案都必须具有能
  • 使用Intel的PIN工具来计算程序中缓存命中/未命中的次数

    我一直在尝试编写一个 pintool 来检测给定程序中的缓存命中和未命中情况 我发现有INS IsMemoryRead Write等调用来判断指令是否是LD ST 有没有办法确定指令是否命中或未命中缓存 如果是这样 是否还可以获得从缓存 内
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • 为什么 data.table `:=` 的 knit 缓存失败?

    这在精神上与this https stackoverflow com q 15267018 1900520问题 但机制上一定不同 如果您尝试缓存knitr包含一个块data table 分配然后它的行为就好像该块尚未运行 并且后面的块看不到
  • 本地化 ASP.NET 资源的滑动过期

    假设我们有 2 个站点 myDomain AU 和 myDomain RU 具有相同的代码和本地化资源文件 resx 和 ru resx 我们预计大多数英语用户将使用 AU 网站 大多数俄语用户将使用 RU 网站 但是 如果 AU 域的某些
  • 如何在 Laravel 5 中通过键获取所有缓存项的列表?

    Laravel 中的 Cache 类具有 get itemKey 等方法来从缓存中检索项目 以及 Remember itemKey myData1 myData2 来将项目保存在缓存中 还有一个方法可以检查缓存中是否存在某个项目 Cache
  • Drupal 视图 - 自定义/修改 SQL

    我遇到了 配置文件复选框 模块的问题 该模块存储以逗号分隔的自定义配置文件字段 问题是我是否创建一个视图来按值过滤 SQL 结果最终是这样的 AND profile values profile interests value in Bus
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提

随机推荐

  • python中的{}和[]有什么区别?

    有什么区别columnNames and columnNames 在Python中 我怎样才能迭代每一个 使用 for value in columnNames OR for idx o val o in enumerate columnN
  • 具有多个类约束的 Haskell 类型签名

    我怎样才能有多个类约束 所以如果A is an Eq and B is a Num 我可以说 f Eq a gt a gt b or f Num b gt a gt b 那么 我怎样才能拥有Eq a gt and Num b gt 同时 f
  • 如何自定义jquery滑块范围的颜色?

    使用 jquery 滑块时 我想将所选范围的默认颜色从灰色更改为蓝色 document ready function var slider slider slider range min min 0 max 100 change funct
  • 如何使用Lucene实现拼音搜索?

    我想使用 Lucene 6 1 0 Soundex 或任何适合葡萄牙语的算法来实现语音搜索 我在互联网上发现了许多不完整的示例 教如何实现自定义分词器 分析器 但似乎这些示例上使用的抽象类在 6 1 0 版本中并不相同 谁能指出我在哪里可以
  • 一元运算与赋值融合

    以下代码中的结果值得怀疑 public static void main String args int i 2 i i 2 i System out println i 本来期待着8作为输出 因为 i 2 应该update我 但它的行为并
  • 重写 XMLHttpRequest.open()

    我怎样才能覆盖XMLHttpRequest open 方法然后捕获并改变它的参数 我已经尝试过代理方法 但它不起作用 尽管删除了打开覆盖XMLHttpRequest 被称为 function var proxied window XMLHt
  • 帮助设置 Ruby on Rails 和 MySQL - 提供奖励

    我迫切需要任何慈善红宝石 Rails 专家的帮助 我真的很想学习RoR 但我无处可去 因为每次我到达需要连接数据库的阶段时 都会出现一些问题 这就是我现在要做的事情 Mac OSX 10 6 6 红宝石 1 9 2 导轨 3 0 5 MyS
  • WCF DataService 不支持预检选项请求?

    我想使用基于 ajax 的组件 KendoUI 来读取 修改 WCF DataServices 实现的 OData 端点上的实体 首先 服务实现相当简单 public class MyFooService DataService
  • 如何在 Windows 命令行中用不同的颜色进行回显

    我知道color bf命令设置整个命令行窗口的颜色 但我想以不同的颜色打印一行 我想用不同的颜色打印一行 使用 ANSI 转义序列 Windows 10 之前的 Windows 控制台上不支持 ANSI 颜色 对于 Windows 10 以
  • 如何在 Julia 1.0 中离线安装 julia 包?

    我有自己的 Julia 包 在 Julia 0 6 上运行良好 当我尝试升级到 Julia 1 0 时 我发现在 Julia 1 0 中添加我自己的包更加困难 我不能把它放在 pkg dir 下 在我的情况下 该包只是我本地磁盘上的几个文件
  • 本地 Postgres 应用程序在端口 5432 上运行,但映射到该端口的 Docker Compose 服务运行时没有错误?

    我在 MacOS 上 Postgres 应用程序在默认端口 5432 上运行 I ran docker compose up对于以下docker compose yml version 3 3 services postgresql ima
  • Git 设置最佳实践

    我的任务是为我的办公室设置 Git 我们有几个网站 我刚刚设置了一个网络驱动器供我们将更改推送到其中 我的问题是 在哪里初始化 Git 存储库 每个站点都有新的 dir init 吗 干净的新驱动器中的一个单元 每个单元用于不同的站点 我还
  • 无法运行任何 flutter 命令“flutter 工具无法访问文件或目录”

    每当我运行 flutter 命令时 包括 扑医生 扑干净 颤振通道 任何通道 etc 我收到以下错误 Gregorys MacBook Pro gregory flutter doctor Unhandled exception Excep
  • 最小宽度和最大宽度 css 媒体查询

    当使用宽度为 720px 的 Samsung Galaxy Nexus 时 这行代码不应该加载样式表 mobile large css 吗 但事实并非如此 这是什么原因以及如何解决 我也在用这个 可能你必须定义device width而不是
  • 如何根据单元格条件将列变成行?

    以下是我的数据示例 Omschrijving AMM AM FG G K MOTRED MINI BPM RVM MOTRED STM RMI MOTRED 1 x magneetplug 1 1 1 1 1 1 2 x afwaterin
  • 第一个弹出窗口显示过时的状态

    我发现了一个符合我口味的弹出窗口的奇怪行为 我希望它显示一个视图PopoverItem and number 两者均应从onTapGesture in ForEach 问题是弹出窗口总是显示默认值number第一次点击时 它会按预期工作 错
  • 枚举的编译时查找表

    我有一个枚举列表 其定义如下 enum PinEnum kPinInvalid kPinA0 kPinA1 kPinB0 kPinB1 kPinC0 kPinC1 每个枚举都需要与其他两个值相关联 即端口和引脚号 目前 我通过运行时函数访问
  • 更改背景图像的不透明度

    我有一个带有文本块的 div 元素和一个父 div 我在其中设置了背景图像 现在我想降低背景图像的不透明度 我怎样才能做到这一点 EDIT 我希望通过编辑 html 内容来改变我的博客文章在 blogger com 上的显示方式 html
  • Java 系统属性的范围

    在Java中我们使用System setProperty 方法来设置一些系统属性 根据本文 http blogs oracle com foo entry monitored system setproperty系统属性的使用有点棘手 Sy
  • 在每个页面上缓存包含特定于会话的数据的 Drupal 站点

    我们有一个用 Drupal 6 编写的网站 我们想使用Drupal的缓存机制来提高性能 但是当我们打开它时 我们发现了问题 因为我们的站点每个页面都显示会话数据 Drupal 的缓存系统仅适用于静态内容页面 而我们的会话数据实际上意味着我们