正文

利用ASP.NET的三种缓存提高站点性能(中)2006-10-16 23:48:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/coyi/19402.html

分享到:

片段缓存,用户控件输出缓存   缓存整个页面通常并不可行,因为页面的某些部分是针对用户定制的。不过,页面的其他部分是整个应用程序共有的。这些部分最适合使用片段缓存和用户控件进行缓存。此外,菜单和其他布局元素,尤其是那些从数据源动态生成的元素,也可以用这种方法进行缓存。   如果需要,可以按以下条件选择需要缓存的控件:   (1)某控件的属性已改变   (2)由页面级输出缓存所支持的任何一种页面或控件状态改变   一旦对某些控件进行了缓存,使用它们的几百个页面就可以共享这些控件,而不再需要为每个页面保留单独的控件缓存版本。   实现   片段缓存使用的语法与页面级输出缓存一样,但其应用于用户控件(.ascx文件)而不是Web窗体(.aspx文件)。除了Location属性,对于OutputCache在Web窗体上支持的所有属性,用户控件也同样支持。用户控件还支持名为VaryByControl的OutputCache属性,该属性将根据用户控件(通常是页面上的控件,例如,DropDownList)的成员的值改变该控件的缓存。如果指定了VaryByControl,可以省略VaryByParam。最后,在默认情况下,对每个页面上的每个用户控件都单独进行缓存。不过,如果一个用户控件不随应用程序中的页面改变,并且在所有页面都使用相同的名称,则可以设置参数Shared的值为“true”,该参数将使用户控件的缓存版本供引用该控件的所有页面使用。   示例 <%@ OutputCache Duration="60" VaryByParam="*" %>   该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。 <%@ OutputCache Duration="60" VaryByParam="none" VaryByControl="CategoryDropDownList" %>   该示例将缓存用户控件60秒,并且将针对CategoryDrop   DownList控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。 <%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser" Shared="true" %>   最后,该示例将缓存用户控件60秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的ID引用该控件即可)。

阅读(3649) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册