随着cacheduration设置,是否有可能使该功能仍然触发

随着cacheduration设置,是否有可能使该功能仍然触发

问题描述:

如果我的我的cacheduration设置为我的Web服务的某个值,是否有可能强制该功能触发?随着cacheduration设置,是否有可能使该功能仍然触发

谢谢。

你可以强制它的唯一方法是发送一个无缓存头到服务器。

有关信息查看MSDN Documentation,特别是以下引用的注释。

此外,HTTP指示 用户代理(浏览器或调用应用 )应该能够 倍率服务器缓存通过设置 “缓存控制”到“无缓存”。因此,ASP.NET 应用程序在找到“no-cache”标头时忽略缓存的 结果。

下面是我通常使用的模式。如果你使用它的缓存中存在的项目,否则你创建它,并把它存储在缓存:

Dim Obj = Cache("YourKeyHere") 
Dim YourObj As DataSet 
If Obj IsNot Nothing AndAlso TypeOf Obj Is DataSet Then 
    YourObj = DirectCast(Obj, DataSet) 
Else 
    YourObj = New DataSet() 
    '...do your normal loading of your object here 
    Cache.Insert("YourKeyHere", YourObj) 
End If 

相反,如果您希望在缓存过期,你可以使用onUpdateCallback

+0

嗯,我被通知从客户方面思考更多。假设我要返回一个值列表来填充下拉框。如果想要获取最新的值,是否有一种方法可以重新使用该函数?或者我必须写一个全新的功能。 – 2010-05-14 15:37:08