上下文:ASP.NET MVC 3.0,.NET 4.0,C#,IIS 7
我有很长的名单(游戏领域/服务器)。领域存储在数据库中 我有一个Action,它将列表作为JSON代码返回。
我在.aspx中引用列表如下:
<script type="text/javascript" src='<%= Url.Action("Realms", "Data") %>'></script>
这是一个缩写动作本身:
public ActionResult Realms() {
var realms = Data.GetRealms(...);
var json = JsonSerialize(realms);
return Content("realms = {0};".With(json), "text/javascript", Encoding.UTF8);
}
此列表很少变化(每月一次)。
问题:如何将此.js文件缓存到客户端?
详情 我的问题是,每个页面刷新时都会下载此“文件”并占据流量的20%。
答案 0 :(得分:4)
如何将此.js文件缓存到客户端?
通过使用[OutputCache]
属性修饰操作,将其缓存在服务器上会更可靠。如果要将其缓存在客户端上,则可以在使用此属性时在客户端上配置缓存缓存位置,该属性将发送正确的Cache-Control
HTTP响应头:
[OutputCache(Location = OutputCacheLocation.Client, Duration = 20)]
public ActionResult Realms()
{
...
}
答案 1 :(得分:1)
如果你必须在客户端缓存,你有一些选择......
可能有更多选择,但这些是我想到的。