问题标签 [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 投票
2 回答
311 浏览

outputcache - OutputCache 没有在整个持续时间内缓存

我做了一个简单的测试用例。

默认.asp:

网络配置:

如果我请求 default.asp 2 次页面被缓存,则 datetime 值在一段时间内表示相同,但​​不是整个小时。

要测试这个打开的 default.asp 请求页面,直到它被缓存,然后等待 5 分钟并刷新页面。

我正在使用 Windows 7 + IIS7.5

0 投票
1 回答
643 浏览

c# - ASP.NET MVC:通过 OutputCache 属性中的 HTTP 状态代码过滤/变化

在我正在编写的 ASP.NET MVC 站点中,我正在按照本教程构建一个由 HttpModule 路由到的通用错误操作。在这个 Action 中,我将返回一个与应用于 HttpModule 内的响应的状态代码相对应的 View(在这样做之后,模块将请求转移到相关的 Action)。

这一切都很好,除了我想实现缓存。我不想在OutputCache没有过滤/变化的情况下使用该属性,因为这意味着该页面将被缓存一次。我希望为每个可能的状态代码缓存一次页面。

是否有可能以某种方式过滤/改变OutputCacheAttribute' 的属性,以便每个 Response.StatusCode 单独缓存?

0 投票
1 回答
3893 浏览

asp.net - 列出 OutputCache 条目

在我的 asp.net mvc 应用程序中,我在不同的操作方法上使用了 OutputCache 属性。是否可以查看与 OutputCache 属性相关的缓存中的当前条目?如果我 cicle onSystem.Web.HttpContext.Current.Cache我找不到这种类型的条目。在此先感谢 F。

0 投票
1 回答
380 浏览

c# - webforms 中的 outputcaching varybyparams 是否理解路由参数?

webforms 中的 outputcaching VaryByParams 是否理解路由参数?这样,如果我有一个类似于"Content/{filename}/{more}"我可以做的路由VaryByParams="filename"并让它根据文件名返回缓存的结果并忽略更多的任何值?

0 投票
2 回答
201 浏览

asp.net - ASP.NET 重新创建缓存控件

我解决了我在缓存方面遇到的大部分问题。但还有一件事。我有一个使用输出缓存的 UserControl。像这样:

但是,如您所见,控件每 12 分钟重新创建一次,因为生成它需要 5 到 10 秒。

现在,ASP.NET 的默认行为是在用户进入页面时创建控件并将其保存在缓存中 12 分钟。然后,再过 5 分钟后,用户进入该页面时,将再次创建控件。

有没有办法强制 ASP.NET 在 12 分钟缓存过期后重新创建控件?下次用户访问时不管吗?

甚至是一个完美的解决方案:假设 11 分 50 秒后在后台重新创建控制,而不是在 12 分钟后用新的替换实际控制?

感谢帮助!

0 投票
6 回答
1359 浏览

javascript - 如何确保永远不会缓存动态生成的 javascript 文件?

我有一个动态生成的 javascript 文件,我想确保它永远不会被浏览器缓存。我目前的方法是简单地将(新)guid 附加到每个页面视图的脚本标记中的 url。

例如:

我的问题是......这是实现我的目标的最佳方式吗?

作为参考,我使用的是 ASP.NET MVC 2,并且由于控制器操作而生成了 javascript 文件。

0 投票
1 回答
2220 浏览

c# - ASP.NET:注销时清除客户端输出缓存

我的 Web 客户端需要客户端输出缓存,因为它使用自己的后退和前进按钮(基本上只是调用浏览器的后退/前进按钮)。

然而,我遇到的问题是(当然)当用户退出应用程序时。客户端输出缓存仍然存在,因此任何人都可以单击“返回”按钮,并且它似乎再次登录。我研究了一些解决方案,但大多数都涉及服务器端输出缓存或根本没有输出缓存。

我在服务器缓存和 HttpResponse.RemoveOutputCacheItem 方面取得了成功,但不幸的是我需要客户端缓存。

注销时是否可以清除此客户端输出缓存?

0 投票
2 回答
883 浏览

asp.net-mvc - 如何关闭整个 ASP.NET MVC 站点的浏览器缓存?

我想为我网站上的每个页面禁用浏览器缓存。我知道我可以按操作执行此操作,但我想知道是否有办法在整个站点范围内执行此操作。

0 投票
1 回答
576 浏览

c# - OutputCache 用于具有状态的动态页面

我有一个 ASPX 页面,它会进行大量数据库查询,我试图缓存这些查询以提高应用程序的性能。页面可以是以下三种状态之一:

  1. 等待动态数据。
  2. 显示动态数据。
  3. 完成显示动态数据。

动态数据的 DateTime 存储在您使用“Id”GET 参数加载的对象中。我希望行为如下。

a> 当页面状态为 1 时,用户浏览到“MyPage.aspx?Id=x”。第一次加载时,页面在数据库中查找,检索它期望获取新数据的 DateTime,并缓存页面直到日期。

b> 用户在该对象的 DateTime 之后浏览到“MyPage.aspx?Id=x”(又名,状态 = 2)。首次加载时,由于缓存已过期,页面会动态生成并显示最新的数据库数据。该页面缓存 30 秒以提高后续用户的性能。

c> 用户在状态变为 3 后浏览到“MyPage.aspx?Id=x”。页面现在永远不会改变,所以没有必要继续在数据库中查找。缓存设置为在一个月内过期(或永不过期,如果可能的话)。

我尝试使用以下代码执行此操作(我的状态称为“Pending”、“InProgress”和“Complete”):

我不确定这是否符合我的预期。我已经使用 FireBug 对其进行了测试,并且 Cache-Control 标头设置为“no-cache”,并且缓存的过期日期设置为“Wed Dec 31 1969 18:00:00 GMT-0600(Central Standard Time)” . 当我注释掉上面的 Response.Cache 行时,缓存控制标头设置为“私有”,并且缓存的到期日期设置为与上面相同。

任何想法我在这里做错了什么或如何更好地测试它?

谢谢!

0 投票
2 回答
2480 浏览

c# - 使用 ASP.NET MVC OutputCache 同时根据用户是否经过身份验证改变视图内容

我正在构建一个 ASP.NET MVC 2 站点,我在其中大量使用 OutputCache 参数。但是,我有一个担忧:使用这种缓存可能会干扰 authentication

在我的所有页面上,我都会显示用户是否登录。此外,在我的一些视图中,我根据用户角色进行过滤以确定是否显示某些页面内容(例如,我的一个页面上的编辑链接仅显示给具有版主或管理员角色的用户) .

使用 OutputCache 会干扰我的视图的这种动态变化吗?如果是这样,我怎样才能在不消除缓存的情况下解决这个问题?