2013-05-19 57 views
0

我在IIS Express中运行的小型ASP.NET Web项目上运行YSlow性能测试。我留下了两个我认为需要优化的项目。ASP.NET和YSlow优化

1.添加Expires头

我需要设置到期日期我的favicon.ico。我怎样才能做到这一点?

enter image description here

2.催芽缓存

当我在统计看标签,我发现我的HTML不被缓存。如何缓存HTML,所以6,7K不会第二次下载?为什么我的图标在已准备好的缓存中被请求?

enter image description here

回答

1

图标

添加到您的web.config文件:

<configuration> 
    <location path="favicon.ico"> 
    <system.webServer> 
     <staticContent> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
    </location> 
</configuration> 

的Html缓存

浏览器根据服务器响应的响应标头缓存页面。 如果页面内容在给定时间段内不会改变,并且用户将在给定时间段内重新访问此页面,则只应请求浏览器缓存页面。

您的一套使用类似的缓存头:

Response.Cache.SetCacheability(HttpCacheability.Public); 
Response.Cache.SetMaxAge(new TimeSpan(1, 0, 0)); 

我建议你看一看的W3C http cache specifications有关浏览器缓存一个完整的概述。

另外,如果你使用缓存,一些浏览器会询问你的服务器,如果该文件自上次他们得到修改他们(“If-Modified-Since" header)。如果文件没有改变,你可以用304 status code回应。