问题标签 [outputcache]

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 投票
1 回答
1240 浏览

asp.net-mvc - Asp.net mvc 输出缓存不适用于 RedirectToAction

就我而言,我有一个控制器,它查询然后使用 RedirectResult 转发用户,它实际上做了一个标题“位置”。

然后我像这样将缓存应用于控制器

我尝试重新运行该页面,并检查我的 Linq 分析器,我仍然能够看到该页面的所有查询都像 1 秒一样重新运行。

我怎样才能防止这种情况发生?

0 投票
1 回答
2893 浏览

asp.net-mvc - Is it possible to use OutputCache on mvc JsonResult controller methods?

I am trying to do this, and it leads to result with contentlen 0

It looks like:

Any ideas?

0 投票
2 回答
1834 浏览

asp.net-mvc - 有没有办法让 OutputCache 忽略 asp.net mvc 中的母版页?

我有一个操作,它返回一个带有顶部登录用户控件的母版页的视图。当我设置 outputcache 时,它​​会缓存包括当前用户在内的整个输出,所以每个人都会看到最后一个点击页面刷新缓存的人作为当前用户。有没有办法防止母版页被包含在缓存中?

我正在使用以下代码:

0 投票
3 回答
4584 浏览

asp.net-mvc - 如何在 ASP.NET MVC 中为经过身份验证的用户关闭输出缓存?

我有一个 ASP.NET MVC 应用程序。我需要缓存一些页面,但适用于未经身份验证的用户。

我尝试使用VaryByCustom="user"以下GetVaryByCustomString实现:

然而,这并不是我所需要的,因为页面仍然被缓存。唯一不同的是 now 是分别为每个用户缓存的。

一种可能的解决方案是在Guid.NewGuid()每次用户通过身份验证时返回,但这对我来说似乎是一种巨大的资源浪费。

那么你对我有什么建议吗?

0 投票
5 回答
2826 浏览

asp.net - ASP.NET (MVC) 输出缓存和并发请求

假设从理论上讲,我的网站中有一个页面/控制器操作,它做了一些非常繁重的事情。完成它的操作大约需要 10 秒。

现在,我使用 .NET 的 outputcache 机制将其缓存 15 分钟(例如,我使用[OutputCache(Duration = 900)])如果 15 分钟后缓存过期并且 100 个用户在执行重加工?

  1. 繁重的东西只做第一次,有一些锁定机制,让其他99个用户得到缓存结果
  2. 繁重的工作完成了 100 次(服务器瘫痪,因为它可能需要 100 * 10 秒)

可能是简单的问题,但我不是 100% 确定。不过,我希望它是第一名:-)

谢谢!

0 投票
1 回答
993 浏览

iis - 当 VaryByParam != "none" 时,如何在客户端和服务器上缓存?

我正在寻找一种在客户端服务器上缓存页面的方法,同时通过查询字符串参数“版本”改变服务器的输出缓存。

使用此标签:

我得到这些标题:

这正是我在客户端想要的,但在服务器端它不会因“版本”而异。

同时,使用此标签:

我得到这些标题:

这正是我在服务器端想要的,但是“Vary:*”标头强制浏览器在每次请求时重新加载页面。

有没有办法在通过参数改变时在客户端和服务器端都获得缓存?

0 投票
2 回答
1863 浏览

asp.net - 输出缓存不适用于路由

我在标准 ASP.Net Web 应用程序项目应用程序中使用来自 System.Web.Routing 的路由而不使用 MVC。这主要是为了在我们正在开发的门户中获得更整洁的 url(而不是 ~/default.aspx?contentid=123 我们有 ~/{contentsubject}。门户未经授权,所有信息都在 url 中,因此在缓存中场景我们可以缓存完整的页面。

当我尝试启用输出缓存时,我注意到没有进行缓存。似乎 outputcache 页面指令被完全忽略了。这是真的还是我错过了什么?这可以解决吗?

我制作了一个小型测试应用程序(我将其上传到http://www.4shared.com/file/196605919/31903b07/OutputCacheTest.html),它只包含一个页面 Webform1.aspx,它使用母版页和用户控件. 这三个都输出当前日期和时间。

当我请求 http//localhost/OutputcacheTest/Webform1.aspx 时,10 秒缓存按预期工作,即显示的时间仅每 10 秒更新一次。

该应用程序还定义了一个通配符路由,该路由捕获所有请求并返回相同的 Webform1.aspx 作为处理程序。因此,当请求 http//localhost/OutputcacheTest/myroute 时,会执行相同的页面,但现在缓存不起作用,即每个请求都会显示当前时间。

注意:当使用内置的开发 web 服务器时,两种方案都有效,只有 IIS 似乎有这个问题。

有没有人有解决方案或解决如何在这种情况下启用输出缓存?

0 投票
1 回答
541 浏览

asp.net-mvc - ViewEngine 上的输出缓存问题,它为 1 个控制器使用 2 个单独的视图

http://www.hanselman.com/blog/MixMobileWebSitesWithASPNETMVCAndTheMobileBrowserDefinitionFile.aspx

为了简单起见,请尝试一下。基本上,我正在尝试做移动视图引擎,但后来我发现我有输出缓存,它将缓存 2 个视图(PC 视图)之一,然后当我尝试通过移动设备访问时,它会自动显示 PC 视图。

那么有没有办法在保持输出缓存的同时避免这个问题呢?

谢谢

0 投票
3 回答
1260 浏览

asp.net - OutputCache 使用 PostBack 返回无效版本

我在输出缓存中遇到了一个奇怪的问题。我在一个页面上有多个用户控件,其中一个是登录控件。页面和登录控件未缓存,但其他用户控件使用 VaryByParam 进行缓存。现在,当我点击不同的页面时,所有这些都与缓存一起工作。但是一旦我登录,该页面上的其他用户控件就会显示旧的缓存版本。如果我刷新页面,我会得到所有用户控件的正确缓存版本。问题仅在回发发生时。出于某种原因,在回发时,返回的缓存版本没有考虑 VaryByParam 字符串。在网上搜索这个时,我确实在 asp.net 上看到了一个类似的问题,其中有一个解释这个问题的代码。

为什么回发会导致缓存返回无效版本?

运行演示,您将看到在页面之间单击会获得正确的缓存版本。但是尝试单击页面并导致回发,然后您会发现有时会收到错误的缓存版本。

0 投票
3 回答
4665 浏览

asp.net - 如何查看 ASP.NET OutputCache 的内容?

有什么方法可以列出当前存储在 OutputCache 中的页面?

只是一个路径列表就可以了,但是如果有办法获得关于每个项目的更多信息(到期等),那就更好了。