如何在Sitefinity的自定义widget上无效缓存以显示更新数据?

问题描述 投票:0回答:1

我在Sitefinity 13中设置了一个自定义小组件,它从外部来源获取数据,并在服务器端缓存该数据。我需要widget数据在缓存超时后刷新任何页面上的数据,但似乎Sitefinity页面缓存机制会缓存页面的渲染结果,而不会调用我的自定义widget的控制器来查看我们是否需要更新数据。我研究了内置的Sitefinity缓存依赖功能,如IHasCacheDependency和SubscribeCacheDependency,但这似乎是针对观察当一个页面、widget或其他项目通过Sitefinity的机制更新时(例如更新页面的版本被发布)。我看不出有什么方法可以用这个功能来实现我的目标。

我是否在内置的缓存依赖模块上遗漏了什么?我有什么选择?

sitefinity
1个回答
0
投票

你有几个选择。

  1. 你可以通过javascript调用来获取数据,而不是从控制器获取数据。这个调用可以是向外部源调用,或者,如果不可行,可以向你网站上的代理api控制器调用,而代理api控制器又会请求外部api。这样页面就会被缓存,但JS脚本会运行,完全不依赖于页面缓存。

  2. 在设置中创建一个新的页面缓存配置文件,它没有滑动的到期时间,并能精确地持续您所需要的时间,例如5分钟。然后将该配置文件设置为您页面的缓存配置文件。这样页面缓存就会在你需要的时候准确地失效(时间上)。

© www.soinside.com 2019 - 2024. All rights reserved.