gpt4 book ai didi

asp.net - 以编程方式缓存用户控件并清除该缓存

转载 作者:行者123 更新时间:2023-12-02 12:44:35 25 4
gpt4 key购买 nike

我正在尝试缓存用户控件,并且在某些页面上我想缓存单个对象。实现缓存的方法有很多种,我的头脑正在崩溃。

我现在查看缓存选项的方式:

您有 PartialCaching 选项,该选项设置为缓存控件 30 分钟,之后它会自行清除...您有 VarieByParam 通过其查询字符串参数来标识页面...或其他变化选项

但我只是找不到一种适当的方法来向控件添加缓存,并且当我从后端更新控件中使用的对象之一时能够以编程方式清除缓存。

您可以执行 HttpContext.Current.Cache.Insert(),它接受一个键,您可以稍后通过使用删除来销毁缓存项...这可以将对象保存在缓存中,但您可以使用像 VariableByParam 这样的选项吗?

我的问题归结为两个:

  1. 有没有办法从代码中清除特定用户控件的缓存?如果是,可以根据不同的选项来完成吗?
  2. 对象缓存将如何响应使用 Insert() 的登录用户或匿名用户?

编辑:我正在缓存多个东西......而且我真的很惊讶于选择哪个引用缓存。 Cache.Insert 可以通过参数改变吗?

主要问题是从后端编辑内容,这需要触发一个事件来重新实例化或清除引用该对象的所有缓存项。

最佳答案

您可以使用以下命令从输出缓存中删除项目。

HttpResponse.RemoveOutputCacheItem("/caching/CacheForever.aspx");

现在,这只会为您提供您正在寻找的部分内容。这将删除该特定页面的所有缓存条目。 MSDN文档证实了该行为。

至于您的另一个问题 Cache.Insert() 是跨应用程序的单个缓存存储,不考虑用户身份。

现在我还会更仔细地看看您在做什么,仅缓存实际数据可能是有意义的,然后您可以添加/删除特定项目。但是,如果您的 .control 确实需要大量 CPU 等来处理显示,那么输出缓存的想法就有效。

关于asp.net - 以编程方式缓存用户控件并清除该缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com