问题标签 [output-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
698 浏览

asp.net-mvc - 使用 OutputCacheAttribute 时忽略 SetLastModified

我有一个 ASP.NET MVC 方法(.NET 4.0 上的 v3.0)设置如下:

我希望这会以指定的Last-Modified标头设置返回Mon, 07 Feb 2011 00:00:00 GMT,但它实际上是作为输出第一次缓存在输出缓存中的日期返回(即自 IIS 重置后第一次调用该方法)。

如果我注释掉该[OutputCache]属性以便没有完成输出缓存,那么Last-Modified标头会按预期返回,因此看起来输出缓存基础结构中的某些东西选择忽略我为此指定的值。

知道为什么它可能会这样做吗?有没有办法让它使用我指定的值作为Last-Modified日期?

0 投票
1 回答
4368 浏览

c# - 你能在 asp.net-mvc 中强制删除(页面和部分视图)OutputCache

我想要一种简单的方法来清除我的 asp.net-mvc 网站上的缓存页面。

我有昂贵的数据库操作,所以我经常使用输出缓存来使网站运行得更快。我的代码如下所示:

有时(出现问题时)我想明确清除此缓存(无论现有缓存持续时间如何)

无论如何,完整和部分页面输出缓存是否可以删除缓存页面并运行完整代码?

注意:我看到这个问题已经像这里一样在 asp.net 周围被问到了,但我没有看到 asp.net-mvc 特定的解决方案

我已经尝试过了,但它似乎不起作用:

0 投票
1 回答
859 浏览

asp.net-mvc - 在 MVC 3 和 EF 4 中缓存数据的最佳方式

在 ASP.NET MVC 3 和 EF 4 中缓存数据和页面输出(两者)的最佳方式是什么?这有什么框架|库吗?谢谢大家;

0 投票
1 回答
1541 浏览

c# - ASP.NET 以编程方式启用输出缓存不起作用 -> 为什么?

为什么,在下面的 aspx 和后面的代码中,当以编程方式启用输出缓存(在代码后面启用)时,它不起作用并且有问题?

aspx:

后面的代码:

使用用于输出缓存的页面指令没有问题:
意思是
aspx:


后面的代码:

那么以编程方式有什么问题?

0 投票
0 回答
304 浏览

c# - 将回发按钮添加到输出缓存的用户控件

我有一个输出缓存在用户控件中的项目列表。如果管理员登录,我想为每个项目添加一个删除按钮。

如果没有输出缓存,我会检查当前用户是否是管理员角色的成员并相应地显示/隐藏按钮。由于列表现在是输出缓存的,我不能这样做。

我查看了替换控件,但首先它返回一个字符串而不是完整控件,其次它是一个静态方法,所以我无法访问 ItemId,我已将其作为属性添加到列表中的每个项目.

将删除按钮添加到我的列表的正确方法是什么?

更新 我尝试将以下内容添加到页面的 page_load 以及用户控件中:

我用以下方式装饰了我的用户控件:

我正在使用开源 CMS Umbraco 创建站点,因此 VaryByCustom="Page" 会根据 CMS 中的当前文档节点来改变缓存。VaryByParams="paging" 通过“paging”-url 参数(列表中的 page1、page2 等)改变列表

ValidateCache 方法永远不会被调用。

0 投票
0 回答
2341 浏览

iis - IIS7 输出缓存 - 仅在缓存中存在 60 秒?

我正在尝试缓存 HTTP 处理程序的 JSON 输出(不是 ASP.NET 页面,因此页面级 OutputCache 指令不适用)。我在 Windows Server 2008 上运行 IIS 7.5。

我在 Web.config 中添加了几行以在用户模式下启用缓存(不是内核模式,因为我需要身份验证):

内容确实成功缓存,但它只存在 60 seconds。我查看了各种配置文件(Web.config、applicationHost.config、机器配置)的某种 60 秒的 TTL,但我不知所措。

我怀疑缓存清除程序每次运行时都可能会吃掉我的缓存条目。我修改了注册表项,使清道夫的运行频率降低;那没有帮助。

我还怀疑 IIS 过度清除缓存是因为机器使用了大量的物理 RAM。此特定服务器的物理 RAM 饱和度约为 66%。我试图为输出缓存分配一个静态量(1 GB),而不是让 IIS 管理缓存,但这也没有成功。

我相信这与Stack Overflow 页面上提出的问题相同,但那个人从未得到答案。

提前致谢。

编辑:我终于能够通过修改 OutputCacheTTL 和 ObjectCacheTTL 注册表值来解决这个问题,如这篇非常有用的文章中所述。似乎微软文档相当不完整。

0 投票
2 回答
886 浏览

asp.net - 输出缓存与浏览器缓存相比的优势

IIS 具有在 asp.net 站点上设置“输出缓存”的功能。我想知道与我们的浏览器完成的缓存相比,这种类型的缓存有什么好处。我想知道,如果我们的浏览器有能力缓存内容(例如 js/css/image),为什么 .net 会实现输出缓存等功能?

0 投票
4 回答
9909 浏览

asp.net-mvc-3 - 如何关闭整个 ASP.NET MVC 3 网站的缓存?

就像问题说的那样,我想知道是否可以关闭我整个站点的所有控制器和操作的缓存。谢谢!

0 投票
1 回答
492 浏览

model-view-controller - 禁用 aspnet mvc2 站点的缓存

我有一个使用 MVC2 + Entity2Sql 作为数据库后端编写的网站。我正在使用 jQuery 对话框编辑记录并使用返回 PartialView 的操作填充它,但在第一次调用后,此操作返回带有旧数据的视图,HTTP 答案 304 未修改。

我检查了日志-正确检索了来自数据库的数据,因此客户端缓存存在问题-清除接收到的缓存数据后。

我执行了以下操作来禁用缓存但没有成功:

在 web.config 中添加了以下代码,在服务器端禁用

向 Site.Master 添加了代码,在客户端禁用

为返回 PartialContent 结果的方法添加了属性,与第一个服务器端相同

在我的应用程序的 IIS 输出缓存设置中添加了带有“不缓存”的“*”扩展名(使用 IIS7)

所有这些方法都对我不起作用,IE 的 devtools 仍然显示答案不是 200,而是 304。

0 投票
1 回答
2286 浏览

asp.net-mvc-3 - 如何在输出缓存中使用动态持续时间值?

我正在使用 ASP.NET MVC3。
我在控制器方法上使用了输出缓存。

我想在输出缓存中使用一些静态变量或其他东西来放置动态持续时间。

我怎样才能做到这一点?