sitefinity - 如何使缓存无效以在 Sitefinity 中的自定义小部件上显示更新的数据
问题描述
我在 Sitefinity 13 中设置了一个自定义小部件,该小部件从外部源检索数据并将该数据缓存在服务器端。一旦缓存超时结束,我需要小部件数据刷新它所在的任何页面上的数据,但似乎 Sitefinity 页面缓存机制将缓存页面的呈现结果,并且不会调用我的自定义小部件控制器看看我们是否需要更新数据。我研究了内置的 Sitefinity 缓存依赖项功能,例如 IHasCacheDependency 和 SubscribeCacheDependency,但这似乎是为了观察页面、小部件或其他项目何时通过 Sitefinity 的机制更新(例如,页面的更新版本已发布) . 我看不到使用该功能来实现我的目标的方法。
我是否缺少内置缓存依赖模块的内容?我有什么选择?
解决方案
你有几个选择:
您可以通过 javascript 调用获取数据,而不是从控制器获取数据。该调用可以针对外部源,或者,如果这不可行,则可以针对您站点上的代理 api 控制器,这反过来又请求外部 api。这样页面将被缓存,但 JS 脚本将运行并且完全不依赖于页面缓存。
在设置中创建一个新的页面缓存配置文件,该配置文件没有滑动过期,并且持续时间正好是您需要的时间,例如 5 分钟。然后将该配置文件设置为页面的缓存配置文件。这样,页面缓存将在您需要时准确地失效(时间方面)。
推荐阅读
- php - why is xor binary out numbered
- sql-server - 无法附加可疑数据库的 mdf 文件
- javascript - 使用 Array.reduce(} 合并对象和值
- php - 从 MySQL DB 保存和检索密码
- algorithm - 回溯和国际象棋
- database - 带有对象的文档上的 MongoDB 聚合
- ios - 从 viewDidAppear() 调用函数会导致内存泄漏,但从 viewWillLayoutSubiews() 不会
- bash - bash:从动态变量中获取值
- java - 在 onCreate() 中获取 Switch 的状态
- puppeteer - 如何使用 puppeteer 从网站打印响应 json?