MVC 全站开启缓存,缓解服务器的请求压力

        protected void Application_BeginRequest()
        {
            HttpResponse Response = HttpContext.Current.Response;
            //获取当前请求的url
            string url = HttpContext.Current.Request.Path;
            //获取请求的文件后缀名
            string extension = Path.GetExtension(url);
            //由于MVC动态页面不带后缀,所有其他有后缀的都加上缓存
            if (!string.IsNullOrWhiteSpace(extension))
            {
                Response.Cache.SetCacheability(HttpCacheability.Public);
                Response.Cache.SetMaxAge(new TimeSpan(8760, 0, 0));
                Response.Headers.Remove("Cache-Control");
                Response.AddHeader("Cache-Control", "public,max-age=31536000");
                Response.Headers.Remove("Expires");
                Response.AddHeader("Expires", DateTime.UtcNow.AddYears(1).ToUniversalTime().ToString("r"));
            }
        }

此举的好处就是用户在第一次访问网站后,图片,脚本,样式等其他静态资源都会被加上缓存头,只要用户不去清除本地的资源,下次访问时,浏览器就会自动判断这些静态资源的有效期,如果在有效期内就不会像服务端发起请求,缓存服务器的请求压力。但随之而来的就时每次更新静态资源,一定要在后面加上版本号,这样才会告知浏览器这是新的资源,应该向服务端请求下,否则用户还会一直看到旧资源,而不是更新后的资源。

MVC 全站开启缓存,缓解服务器的请求压力,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。