OutputCache详解

当用户访问页面时,整个页面将会被服务器保存在内存中,这样就对页面进行了缓存。当用户再次访问该页,页面不会再次执行数据操做,页面首先会检查服务器中是否存在缓存,若是缓存存在,则直接从缓存中获取页面信息,若是页面不存在,则建立缓存。浏览器

页面输出缓存适用于那些数据量较多,而不会进行过多的事件操做的页面,若是一个页面须要执行大量的事件更新,以及数据更新,则并不能使用页面输出缓存。使用@OutputCatch指令可以声明页面输出缓存,示例代码以下所示。缓存

<%@ OutputCache Duration="120" VaryByParam="none" %>服务器

上述代码使用@OutputCatch指令声明了页面缓存,该页面将被缓存120秒。@OutputCatch指令包括10个属性,经过这些属性可以分别为页面的不一样状况进行缓存设置,经常使用的属性以下所示:性能

q CacheProfile:获取或设置OutputCacheProfile名称。学习

q Duration:获取或设置缓存项须要保留在缓存中的时间。spa

q VaryByHeader:获取或设置用于改变缓存项的一组都好分隔的HTTP标头名称。.net

q Location:获取或设置一个值,该值肯定缓存项的位置,包括Any、Clint、Downstream、None、Server和ServerAndClient。默认值为Any。blog

q VaryByControl:获取或设置一簇分好分隔的控件标识符,这些标识符包含在当前页或用户控件内,用于改变当前的缓存项。事件

q NoStore:获取或设置一个值,该值肯定是否设置了“Http Cache-Control:no-store”指令。内存

q VaryByCustom:获取输出缓存用来改变缓存项的自定义字符串列表。

q Enabled:获取或设置一个值,该值指示是否对当前内容启用了输出缓存。

q VaryByParam:获取查询字符串或窗体POST参数的列表。

经过设置相应的属性,能够为页面设置相应的缓存,当须要为Default.aspx设置缓存项时,可使用VaryByParam属性进行设置,示例代码以下所示。

<%@ OutputCache Duration="120" VaryByParam="none" %>

上述代码使用了Duration属性和VarByParam属性设置了当前页的缓存属性。为一个页面进行总体的缓存设置每每是没有必要的,经常还会形成困扰,例如Default.aspx?id=1和Default.aspx?id=100在缓存时可能呈现的页面是相同的,这每每不是开发人员所但愿的。经过配置VarByParam属性可以指定缓存参数,示例代码以下所示。

<%@ OutputCache Duration="120" VaryByParam="id" %>

上述代码则经过参数id进行缓存,当id项不一样时,ASP.NET所进行的页面缓存也不尽相同。这样保证了Default.aspx?id=1和Default.aspx?id=100在缓存时所显示的页面并不一致。VarByHeader和VarByCustom主要用于根据访问页面的客户端对页面的外观或内容进行自定义。在ASP.NET中,一个页面可能须要为PC用户和MOBILE用户呈现输出,所以能够经过客户端的版本不一样来缓存不一样的数据,示例代码以下所示。

<%@ OutputCache Duration="120" VaryByParam="none" VaryByCustom="browser" %>

上述代码则为每一个浏览器单独设置了缓存条目。

 

学习自http://blog.csdn.net/rewoshengqi/article/details/5748405

相关文章
相关标签/搜索