asp.net OutputCache 问题
如何可以不cache null啊? 具体点。刚用cache吗?问题不对路 我要返回FileResult<AcceptVerbs(HttpVerbs.Get)>
<OutputCache(Duration:=90000, VaryByParam:="id;extension", Location:=OutputCacheLocation.Any)>
Function GetTestImage(ByVal id As String, ByVal extension As String) As FileResult
Return Hello.GetImage(id, extension)
End Function
如果Hello.GetImage在9:00am没有读到文件,返回null,但可能文件在10:00am存在,我不要OutputCache保存null,但我又不想Duration设的很小,例如两分钟,因为我想一旦cache了,就不要再从磁盘里读了 我现在的做法是将OutputCacheAttribute.cs复制成自己的class,加一行检测null 本帖最后由 mason00 于 29-8-2014 13:31 编辑
DDD888 发表于 29-8-2014 12:13
我现在的做法是将OutputCacheAttribute.cs复制成自己的class,加一行检测null
null就是没有cache啊,什么也没保存。直到10:00,文件有了,才会cache下来,不用读磁盘了之后。之后每900000后会去刷新cache,如果文件又没了,返回null,有就cache最新读到的文件。 mason00 发表于 29-8-2014 13:29
null就是没有cache啊,什么也没保存。直到10:00,文件有了,才会cache下来,不用读磁盘了之后。之后每 ...
问题是这个null cache给所有其他request共享了 DDD888 发表于 29-8-2014 13:37
问题是这个null cache给所有其他request共享了
那是肯定啊,要不就不是cache了。所以什么东西要cache是个选择。后面各种vary的参数很讲究的。 mason00 发表于 29-8-2014 13:38
那是肯定啊,要不就不是cache了。所以什么东西要cache是个选择。后面各种vary的参数很讲究的。
我现在决定不用OutputCache,我自己控制cache DDD888 发表于 29-8-2014 13:37
问题是这个null cache给所有其他request共享了
我的想法是错误的,NULL不被ASP.NET CACHE,但返回NULL的结果被这个CLIENT的BROWSER CACHE,所以我的解决方案是如果是NULL,告诉CLIENT的BROWSER 不CACHE,非NULL的话,CACHE 24小时。
页:
[1]