当一份asp.net网页第一次被访问,会被编译成IL,接着是Native Code,而Native Code会缓存成Page类,在下一次用户请求同一页面的时候直接供其使用。当asp.net初始文件被更新,或者超出缓存区的时间设置(Timeout),整份asp.net网页会被重新编译,并再一次置入Page类的缓存区中。
一、超时设置
二、指定绝对到期日
假如要在10分钟之后重新缓存一次页面,可以设置Response.Cache对象的两个方法,SetExpires与SetCacheability,程序会自动更改HTTP标头。
三、指定相对到期日
用来指定最后一次访问后,多久超时。
举例来说,某网站可能一天才更新一次,但访问量动辄数万,如果设置为第一次访问后10分钟失效,再缓存一次,似乎没什么帮助,因此改为最后一次被调用后多久才失效,也就是相对到期日。
关键在于 Response.Cache 对象的 SetSlidingExpiration 属性设置为 True
一、超时设置
<%@ OutputCache Duration="600"%>
二、指定绝对到期日
假如要在10分钟之后重新缓存一次页面,可以设置Response.Cache对象的两个方法,SetExpires与SetCacheability,程序会自动更改HTTP标头。
Response.Cache.SetExpires(DateTime.Now.AddSeconds(600));
Response.Cache.SetCacheability(HttpCacheability.Public);
以上两个语句可以精简地写成这样
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Expires="600";
Response.CacheControl="public";
Response.CacheControl="public";
三、指定相对到期日
用来指定最后一次访问后,多久超时。
举例来说,某网站可能一天才更新一次,但访问量动辄数万,如果设置为第一次访问后10分钟失效,再缓存一次,似乎没什么帮助,因此改为最后一次被调用后多久才失效,也就是相对到期日。
关键在于 Response.Cache 对象的 SetSlidingExpiration 属性设置为 True
Response.Cache.SetExpires(DateTime.Now.AddSeconds(3600));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetSlidingExpiration(True);
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetSlidingExpiration(True);