天天看點

web開發人員須知的web緩存知識–将資料緩存到浏覽器端Net實作

現實中,伺服器在向浏覽器發送的資料中,一部分資料是不經常更新的,如果能将這部分資料緩存到浏覽器端,将會大大降低傳輸的資料,提高應用的性能。通過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);

    }