`

15、使用部分页面缓存2

阅读更多
3、共享用户控件的输出缓存
默认情况下,同一个用户控件在不同页面上的实例不共享相同的缓存。
希望跨页面缓存相同的用户控件的内容。需要指定<%@ OutputCache%>指定Shared特性。

SharedMovie.ascx
<%@ Control Language="C#" ClassName="Movies" %>
<%@ OutputCache Duration="600" VaryByParam="none" Shared="true" %>
<script runat="server">

</script>
User Control Time:
<%=DateTime.Now.ToString("T") %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
            SortExpression="id" />
        <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
        <asp:BoundField DataField="Director" HeaderText="Director" SortExpression="Director" />
        <asp:BoundField DataField="DateReleased" HeaderText="DateReleased" SortExpression="DateReleased" />
        <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Movies]"></asp:SqlDataSource>


4、以编程方式处理用户控件缓存
用户控件CachePloicy属性公开了一个ControlCachePolicy类的实例。

SlidingUserCache.ascx
<%@ Control Language="C#" ClassName="SlidingUserCache" %>
<%@ OutputCache Duration="10" VaryByParam="none" %>
<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        CachePolicy.SetSlidingExpiration(true);
        CachePolicy.Duration = TimeSpan.FromMinutes(1);
    }
</script>
User Control Time:
<% =DateTime.Now.ToString("T") %>



5、创建用户控件缓存的文件依赖
CacheControlPolicy.Dependency属性在一个缓存了的用户控件和文件系统中的一个文件(或一组文件)间创建一个依赖。当文件被修改时,用户控件的缓存自动失效,并在下次页面被请求时重新生成。

MovieFileDependency.ascx
<%@ Control Language="C#" ClassName="MovieFileDependency" %>
<%@ OutputCache Duration="9999" VaryByParam="none" %>
<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        CacheDependency depend=new CacheDependency(MapPath("~/Movies.xml"));
        this.CachePolicy.Dependency=depend;
        
    }
</script>

User Control Time:
<%=DateTime.Now.ToString("T") %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataSourceID="XmlDataSource1">
    <Columns>
        <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
    </Columns>
</asp:GridView>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Movies.xml">
</asp:XmlDataSource>


ShowMovieFileDependency.aspx
<%@ Page Language="C#" %>

<%@ Register TagPrefix="movie" TagName="MovieFileDependency" Src="~/MovieFileDependency.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Page Time:
        <%=DateTime.Now.ToString("T") %>
        <hr />
        <movie:MovieFileDependency runat="server" />
    </div>
    </form>
</body>
</html>


在Maxthon2中会出现更新Movie.xml刷新不立即更新的问题,Firefox没有这问题。
2011-5-30 21:17 danny

6、缓存动态载入的用户控件
可以使用Page.LoadControl()方法动态载入一个用户控件。
可以和声明在页面中的用户控件一样缓存动态载入的用户控件。
如果用户控件包括一个<%@OutputCache%>指令,则用户控件无论是用声明方式还是编程方式添加到页面的,它都会缓存。


P170
2011-5-30 21:21 danny
分享到:
评论

相关推荐

    页面缓存处理方案文档,解决前后端页面缓存

    页面缓存处理是提高Web应用性能的关键策略,它能够减少服务器压力,加快用户访问速度。本文档主要讨论了如何处理页面缓存,确保前端逻辑和资源更新后立即生效,无需额外操作。 首先,我们来看前端处理方案。在HTML...

    springMVC+Ehcache的各级缓存(包括页面缓存)

    SpringMVC和Ehcache的结合使用,能够构建一个高效、灵活的多级缓存系统,其中包括页面缓存。下面将详细介绍SpringMVC与Ehcache集成后的各级缓存机制以及页面缓存的实现。 1. SpringMVC简介: SpringMVC是Spring框架...

    jsp 页面缓存

    在JSP中,我们可以使用多种方式实现页面缓存。一种常见的方法是通过HTTP头信息控制缓存,例如设置`Cache-Control`、`Expires`和`ETag`等字段。例如,我们可以在JSP页面中添加以下Java代码片段来设置缓存策略: ```...

    页面缓存的小测试

    页面缓存是优化Web应用程序性能的关键技术之一,它通过存储常用的网页或数据在服务器的内存中,减少对数据库的访问,从而大大提高响应速度。在这个小测试中,我们将探讨页面缓存的基本概念,以及如何利用开源工具...

    php文件页面缓存类.zip

    总结来说,PHP文件页面缓存类是通过将页面内容或数据存储到本地文件,实现数据的快速访问和复用,从而提高应用程序的性能。通过合理设计和使用这样的缓存类,开发者可以有效地优化网站的响应速度,降低服务器压力,...

    ASP_NET中Web页面缓存技术探讨

    局部页面缓存可以在已缓存的页面或控件中嵌套使用,进一步提高页面性能。 #### 三、数据缓存 除了页面缓存和局部页面缓存外,ASP.NET还支持数据缓存,即缓存应用程序级别的数据对象,以减少数据库访问的次数和提高...

    关于vue里页面的缓存详解

    结合router缓存部分页面: 比较实用的例子: 思路:通过beforeRouterLeave这个钩子来对路由里面的keepAlive进行赋值。从而动态的确定A页面是否需要被缓存。 结合router缓存部分页面: 比较实用的例子: 思路:...

    ASP.net页面缓存技术

    ASP.net 页面缓存技术 输出缓存是 ASP.net 中的一种缓存技术,它允许开发者控制页面的缓存,以提高应用程序的性能。输出缓存可以将页面的输出缓存在客户端浏览器、代理服务器或 Web 服务器上,以便快速地将页面呈现...

    利用javascript缓存页面部件

    - **缓存策略**:决定何时缓存,何时使用缓存,何时更新缓存。这可能基于URL、时间戳、版本号等多种因素。 - **缓存大小管理**:避免无限增长导致的存储空间耗尽问题,适时清理不再需要的缓存数据。 - **兼容性检查*...

    Ehcache页面缓存的使用.doc

    当我们发现应用程序中大部分请求集中在少数资源上时,使用页面缓存尤其有效。80/20原则指出,20%的数据占据了80%的访问,因此,针对这些热点页面实施缓存策略是提升性能的关键。 页面缓存的主要目标是减少对数据库...

    举例理解Ruby on Rails的页面缓存机制

    2. **页面缓存的局限性**:不是所有页面都适合使用页面缓存。如果页面内容根据用户身份或行为动态变化,例如登录状态、个人资料等,页面缓存就无法工作。因为一旦缓存生成,它不会随着用户状态的改变而更新。 3. **...

    HTML,JSP页面缓存的解决方案

    在Web开发过程中,页面缓存问题一直是开发者们关注的重点之一。合理的页面缓存管理不仅可以提升用户体验,还可以减轻服务器压力。然而,在某些情况下,如模态窗口中的POSTBACK操作时,缓存的存在可能会导致一系列...

    ASP.NET15缓存机制.rar

    2. 部分缓存:通过`&lt;asp:UpdatePanel&gt;`控件或`OutputCache`指令实现部分页面的缓存,允许页面的某些部分动态更新。 3. 基于参数的缓存:根据URL中的查询字符串或其他参数缓存不同版本的页面。 4. 指定位置缓存:使用...

    实现在客户端的页面缓存

    本文将深入探讨如何通过Flash插件实现客户端的页面缓存,以及这一技术的相关知识点。 首先,理解“客户端缓存”的概念至关重要。客户端缓存,也称为浏览器缓存,是Web浏览器为加快页面加载速度而存储的部分网页资源...

    ehcach SimplePageCachingFilter 页面缓存

    `SimplePageCachingFilter`就是这样一个实现页面缓存的过滤器,它可以在Spring、Struts等Web框架中集成使用。 **2. Ehcache的简单页面缓存原理** `SimplePageCachingFilter`在HTTP请求到达控制器之前被调用,它...

    细谈Ehcache页面缓存的使用

    ### 细谈Ehcache页面缓存的使用 在当今高度动态且数据密集型的应用环境中,缓存技术扮演着至关重要的角色。Ehcache作为一款高性能、轻量级的Java缓存框架,被广泛应用于各种场景中以提高系统的响应速度和整体性能。...

    vue页面跳转实现页面缓存操作

    在Vue.js应用中,页面缓存是一个常见的需求,特别是在页面之间需要保持状态或者优化用户体验时。Vue提供了`keep-alive`组件来实现这一功能。本文将详细解释如何在Vue页面跳转过程中实现页面缓存,并结合业务场景进行...

    Http页面缓存机制(转)

    HTTP页面缓存机制是网络应用中的一个重要组成部分,它极大地提高了网页加载速度,减少了服务器压力,并优化了用户体验。在浏览器与服务器之间的通信中,缓存扮演了中间者的角色,将频繁访问的数据暂存到本地,以便在...

    asp.net缓存 缓存

    输出缓存则主要针对HTTP响应,它可以缓存整个页面或页面的部分内容,这样当相同的请求再次到来时,就可以直接从缓存中返回,而无需重新生成页面。 何时使用缓存?以下是一些常见的情况: 1. 数据访问频繁但变化不...

    基于OSCache的页面缓存

    【基于OSCache的页面缓存】是Web应用中一种有效的性能优化策略,它涉及到缓存技术、分布式系统以及系统开发等多个领域。OSCache是开源的Java缓存框架,能够帮助开发者实现高效的页面和数据缓存,从而降低数据库的...

Global site tag (gtag.js) - Google Analytics