欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

片段缓存,用户控件输出缓存

创建时间:2011年07月21日 13:31  阅读次数:(5570)
分享到:
片段缓存,用户控件输出缓存——是ASP.NET提供输出缓存页面部分内容的简单方法。

使用页面部分缓存,首先要将网页中放入缓冲区的部分分离出来,使用用户控件构建页面的缓冲区域,并使用@OutputCache指令将它们标记出来,确定这些部分以供缓存使用。

某个部分整个应用程序共有的,这些部分最适合使用片段缓存和用户控件进行缓存。
菜单和其他布局元素,尤其是那些从数据源动态生成的元素。
使用同一组控件的几百个页面还可以共享那些控件的缓存条目,而不是为每个页面保留单独的缓存版本。

片段缓存,用户控件输出缓存使用@OutputCache指令和页面输出缓存控件基本差不多,但Shared和VaryByControl是片段缓存、用户控件输出缓存页面部分缓存所特有。
除了 Location 属性和VaryByHeader 属性外,对于 OutputCache 在 Web 窗体上支持的所有属性,用户控件都支持。

在默认情况下,对每个页面上的每个用户控件都单独进行缓存。不过,如果一个用户控件不随应用程序中的页面改变,并且在所有页面都使用相同的名称,则可以应用 Shared="true" 参数,该参数将使用户控件的缓存版本供所有引用该控件的页面使用。

<%@ OutputCache Duration="60" VaryByParam="*" % > 

将60 秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。

<%@ OutputCache Duration="60" VaryByParam="state;city" % > 

将缓存用户控件60秒,并使用"state"和"city"查询字符串或窗体发布参数改变缓存。

VaryByParam在ASP.NET的服务器上缓存控件的多个实例。
eg:一个用户控件的宿主页的下列URL缓存用户控件内容的单独实例:
http://localhost/webfrom.aspx?state=shangxi&city=xian
http://localhost/webfrom.aspx?state=shangxi&city=xianyang  


用户控件能根据提供的参数动态生成不同的内容,除了支持VaryByParam属性外,片段缓存,用户控件输出缓存还支持VaryByControl 的属性。
VaryByParam属性基于使用POST或GET发送的名称/值对改变缓存结果,而VaryByControl 的属性将根据用户控件(通常是页面上的控件,例如,DropDownList)的成员的值改变该控件的缓存。如果指定了 VaryByControl,不使用VaryByParam属性,也要将设置VaryByParam="none"。

eg:
<%@ OutputCache Duration="60" VaryByParam="none"  VaryByControl="CategoryDropDownList" % > 

将缓存用户控件60 秒,并且将针对 CategoryDropDownList 控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。

<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"  Shared="true % > 

将缓存用户控件 60 秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的 ID 引用该控件即可)。p
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 3+33=? 的结果(结果是:36)
结  果: