Asp.net mvc MVC OutputCache仍然允许我的控制器在第二次呼叫时被击中
下面是控制器操作,通过$.ajax调用Asp.net mvc MVC OutputCache仍然允许我的控制器在第二次呼叫时被击中,asp.net-mvc,Asp.net Mvc,下面是控制器操作,通过$.ajax调用 [OutputCache(Duration = 60, Location = OutputCacheLocation.Client, NoStore = true, VaryByParam = "*")] public JsonResult GetSomeViewModel(int id, string searchDate) 我在该操作中有一个断点 现在,我希望在第二次调用时(至少在60秒内),我的断点不会被击中,因为浏览器应该缓存该响应 这是我第一次
[OutputCache(Duration = 60, Location = OutputCacheLocation.Client, NoStore = true, VaryByParam = "*")]
public JsonResult GetSomeViewModel(int id, string searchDate)
我在该操作中有一个断点
现在,我希望在第二次调用时(至少在60秒内),我的断点不会被击中,因为浏览器应该缓存该响应
这是我第一次尝试使用此功能
我做错了什么
这在所有主流浏览器上都会发生。您提到使用的是
$.ajax
,听起来像jQuery。默认情况下,jQuery将发送带有缓存buster的请求。如果监视网络流量,您可能会在ajax请求的查询字符串中看到类似于\u1406209313719
的内容。整数是一个时间戳,因此它将始终更改,并适用于大多数浏览器缓存
通过在ajax方法中将cache
设置为false,可以将jQuery设置为不使用缓存buster
$.ajax({
cache: false
});
您提到使用了
$.ajax
,这听起来像jQuery。默认情况下,jQuery将发送带有缓存buster的请求。如果监视网络流量,您可能会在ajax请求的查询字符串中看到类似于\u1406209313719
的内容。整数是一个时间戳,因此它将始终更改,并适用于大多数浏览器缓存
通过在ajax方法中将cache
设置为false,可以将jQuery设置为不使用缓存buster
$.ajax({
cache: false
});
我也遇到了这个问题。我使用$.ajax从RSS提要异步加载内容。在使用
cache:true
配置了$.ajax调用之后(是的,true,用于禁用缓存破坏;有关详细信息,请参阅)。我仍然在处理后续请求
我的假设是存在一个阻止OutputCache激活的阈值。我的研究引导我(小节:缓存复杂性),这些设置可能会影响OutputCache实际使用的时间。我的基本测试似乎确认只有前两个请求进入操作,但3个或更多请求(在10秒钟的时间内)没有进入操作
我很好奇是否有其他人能够更广泛地测试OutputCacheAttribute,并且能够证实或反驳我的发现。我也遇到了这个问题。我使用$.ajax从RSS提要异步加载内容。在使用
cache:true
配置了$.ajax调用之后(是的,true,用于禁用缓存破坏;有关详细信息,请参阅)。我仍然在处理后续请求
我的假设是存在一个阻止OutputCache激活的阈值。我的研究引导我(小节:缓存复杂性),这些设置可能会影响OutputCache实际使用的时间。我的基本测试似乎确认只有前两个请求进入操作,但3个或更多请求(在10秒钟的时间内)没有进入操作
我想知道是否有其他人能够更广泛地测试OutputCacheAttribute,并且能够证实或反驳我的发现。您的
缓存设置是向后的cache:false
指示jQuery附加cache-buster查询参数(更改每个请求以使其不能被缓存)。您可能希望设置cache:true
以消除缓存破坏程序。您将cache
设置向后cache:false
指示jQuery附加cache-buster查询参数(更改每个请求以使其不能被缓存)。您可能希望设置cache:true
以消除缓存破坏器。