天天看点

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);

    }