現實中,伺服器在向浏覽器發送的資料中,一部分資料是不經常更新的,如果能将這部分資料緩存到浏覽器端,将會大大降低傳輸的資料,提高應用的性能。通過Expires政策,可以使用HTTP
協定定義的緩存機制将資料緩存到浏覽器中。下面我們看看Net是如何實作将資料緩存到浏覽器中的。
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Headers["If-Modified-Since"] != null
&& TimeSpan.FromTicks(DateTime.Now.AddHours(1).Ticks - DateTime.Parse(Request.Headers["If-Modified-
Since"]).Ticks).TotalSeconds < 100) //緩存100秒,可以根據實際情況調整。也可以修改判斷條件。
{
Response.StatusCode = 304;
Response.StatusDescription = "Not Modified";
}
else
{
literal1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
SetClientCaching(Response,DateTime.Now);
}
}
private void SetClientCaching(HttpResponse response, DateTime lastModified)
{
response.Cache.SetETag(lastModified.Ticks.ToString());
response.Cache.SetLastModified(lastModified);
response.Cache.SetCacheability(HttpCacheability.Public);
response.Cache.SetMaxAge(new TimeSpan(7,0,0,0));
response.Cache.SetSlidingExpiration(true);
}