加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何最好地使用ASP.NET MVC中的Expires头?

发布时间:2020-12-16 04:07:32 所属栏目:asp.Net 来源:网络整理
导读:我希望能够为用户通过GET请求下载的某些项目设置较长的到期时间. 我想说’这有利于10分钟'(即我想设置一个Expires标题10分钟).请求是通过AJAX在页面中显示的HTML片段,它们对用户的会话很有用.我不想回到服务器并获得304,如果他们再次需要它们 – 我希望浏览
我希望能够为用户通过GET请求下载的某些项目设置较长的到期时间.

我想说’这有利于10分钟'(即我想设置一个Expires标题10分钟).请求是通过AJAX在页面中显示的HTML片段,它们对用户的会话很有用.我不想回到服务器并获得304,如果他们再次需要它们 – 我希望浏览器缓存立即给我相同的项目.

我发现了一篇关于MVC Action filter caching and compression的文章差不多一年了.这创建了一个自定义ActionFilter来更改expires头.我已经在使用压缩过滤器,它对我正在生成的一些自定义css非常有效(压缩率为94%!).

我有两个主要问题:

1)我真的必须使用这种方法.如果我这样做,我很好,但MVC或OutputCache功能真的没有功能为我做这个吗?在’传统’ASP.NET中我总是手动设置Expires头,但我们不能再这样做了 – 至少在控制器中没有.

2)如果我使用这种过滤方法 – 是否会干扰OutputCache策略 – 我希望能够在web.config中控制它.我有点认为这两者是相互排斥的,你不会想要两者 – 但我不完全确定.

解决方法

>不,您不必使用此方法.但是,我认为它可能是最好的选择方法,因为它使控制器更易于测试并且更少网络感知.另一种方法是在Controller中手动设置标头,如下所示:

Response.AddHeader(“Expires”,“Thu,1994年12月1日16:00:00 GMT”);
>嗯,OutputCache属性控制动作何时运行,以及何时返回缓存的HTML. Expires告诉浏览器何时重新获取HTML.所以我不会把它们称为互相排斥,但它们肯定是同一枚硬币的两面,你认为你可能不需要两者都是正确的.我建议您查看the HTTP spec,以确定最适合您的应用程序的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读