页面数据缓存

news/2024/7/5 5:01:00
 查找更多的相关主题    
页面数据缓存

ASP.NET提供了一个相当出色的缓存引擎机制,它允许页面保存和索引HTTP请求所要求的各种各样的对象。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器。缓存的生存周期取决于应用的生存周期,也就是说,当应用重新启动时,缓存实际上也已重建。 缓存提供了一个简单的字典接口,以便于开发者能够轻而易举放置对象到缓存中,并在以后使用。最简单的情况下,放置一个对象到缓存中,就如同对字典增加一个条目。 例如: Cache(“myKey”)=MyValue 即是把MyValue放入缓存中一个叫myKey的缓存对象中,当需要引用myKey值时,可以采用下面的使用方式: myValue1=Cache(“myKey”) if myValue1 <> Null then ‘非空时的动作 … end if

 asp.net提供了三种缓存替换的策略: 1.“腐烂搜索”(Scavenging) 比较类似于“最近最少使用”替换原则,当内存变得比教紧张时,缓存机制会找出最不常用和最不重要的对象,把它从内存中移出,以减轻系统压力。为控制“腐烂搜索”的具体行为,编程者必须在插入缓存对象时,指明插入它的耗费和多少时间内它必须被存取一次才能继续留在缓存中,以供替换时进行决择。 2.“到期控制”(Expiration) 编程者可以指定缓存对象的生存周期,这种指定的时间可以是绝对的也可以是相对的。例如绝对的时间(下午6:00到期),相对时间(该对象距最近一次存取它的时间满10分钟即到期)。当一个缓存对象到期后,它将从缓冲内存中移出,此时对该对象的索引将得到null值,除非又重新插入该对象。 3.“文件和键值依赖” 从外部文件或者是其他缓存键值是否改变,来决定本身键值是否有效。如果依赖发生改变,缓存对象将变得不可使用,并从缓存中移动出来。试想这样一种情况,应用从一个XML文件中读出金融信息,而该文件又被定期地修改。应用的作用是利用从该文件读出的信息构造一个图形对象以表示销售的情况。当应用读入文件时,它把数据插入缓存中,并记录下文件的依赖关系。当文件发生修改时,应用使开始产生的缓存对象无效并从内存中移出已经无用的数据,此后应用重新读入文件的数据,再把更新后的数据放入缓存,这样就完成了信息的更新,并返回给最终用户。 6.2.2 实例 例子: 从一个XML中读出用户信息并显示在页面上,页面提供了两个按钮,一个为增加用户,一个为刷新。我们在内存中建立了一个缓存对象“DataCache5”,它与客户信息文件”custom1.xml”建立了依赖关系。当custom1.xml文件未发生变化时,我们按下“刷新”按钮,可以看到信息是从缓存中读出的;当我们输入客户相应的资料,增加了一个客户以后,再按下“刷新“按钮后,我们可以看到客户信息变成了从文件读出。 1.ASPX源程序(performance/FormDataCache.aspx): <!-- 文件名:FormDataCache.aspx --> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> sub LoadData1 '当缓存对象DataCache5有效时,从缓存中读出客户信息;无效时,从文件读出信息 dim dv1 as DataView  dv1=Cache("DataCache5")  if dv1 = Nothing  dim ds as DataSet  dim fs as FileStream  dim sr as StreamReader

 ds=New DataSet  fs=New FileStream(Server.MapPath("custom1.xml"),FileMode.Open,FileAccess.Read)  sr=New StreamReader(fs)  ds.ReadXml(sr)  fs.Close()  dv1=new DataView(ds.Tables(0))  Cache.Insert("DataCache5",dv1,New cachedependency(Server.MapPath("custom1.xml")))  lblMsg.text="数据从文件中读出..."  Else  lblmsg.text="数据从缓存中读出..."  end if '绑定到DataGrid1对象  DataGrid1.datasource = dv1  DataGrid1.databind() end sub sub Page_Load(s as object,e as eventargs) '加载页面时,从文件中读出客户信息  if Not IsPostBack  LoadData1()  end if end sub sub AddBtn_Click(s as object,e as eventargs) '增加一个客户信息到文件中 dim FS as FileStream dim Reader as StreamReader dim DS as DataSet dim dr1 as DataRow dim tw1 as TextWriter  if Not Page.IsValid  lblMsg.text="还有域未曾填充..."  else  DS=New DataSet()  FS=New FileStream(Server.mappath("custom1.xml"),FileMode.Open,FileAccess.Read,FileShare.ReadWrite)  Reader=New StreamReader(FS)  DS.readxml(Reader)         FS.Close()  dr1=DS.tables(0).newrow()      dr1("CustName")=txtName.text  dr1("CustIdno")=txtIdno.text  dr1("CustCard")=txtCard.text  DS.tables(0).rows.add(dr1)               FS=New FileStream(Server.MapPath("custom1.xml"),FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite)  tw1=New StreamWriter(FS)  tw1=textwriter.synchronized(tw1)  DS.writexml(tw1)  tw1.close()  LoadData1()  end if end sub sub RefreshBtn_Click(s as object,e as eventargs)  LoadData1() end sub </script> <head> <title> 数据缓冲实验 </title> </head> <body> <center> <form runat=server> <h2>XML文件缓存测试</h2> <ASP:DataGrid id="DataGrid1" runat="server"         Width="600"         BorderColor="black"         ShowFooter="false"         CellPadding=3         CellSpacing="0"         Font-Name="Verdana"         Font-Size="8pt"           /> <hr> <h3>添加一个客户信息</h3> <table> <tr> <td>姓    名:</td> <td><ASP:textbox id=txtName runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtName" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>身份证号:</td> <td><ASP:textbox id=txtIdno runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtIdno" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>信用卡号:</td> <td><ASP:textbox id=txtCard runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtCard" Display="static" ErrorMessage="*" runat=server /> </td> </tr> </table> <p> <asp:button text="增加" οnclick="AddBtn_Click" runat=server /> <asp:button text="刷新" οnclick="RefreshBtn_Click" runat=server /> <p><p><p> <asp:label id=lblMsg runat=server /> </form> </center> </body> </html>

 查找更多的相关主题    
页面数据缓存
http://www.yuzi.net   2006-5-22 15:03:55  

6.2.1 基本概念 ASP.NET提供了一个相当出色的缓存引擎机制,它允许页面保存和索引HTTP请求所要求的各种各样的对象。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器。缓存的生存周期取决于应用的生存周期,也就是说,当应用重新启动时,缓存实际上也已重建。 缓存提供了一个简单的字典接口,以便于开发者能够轻而易举放置对象到缓存中,并在以后使用。最简单的情况下,放置一个对象到缓存中,就如同对字典增加一个条目。 例如: Cache(“myKey”)=MyValue 即是把MyValue放入缓存中一个叫myKey的缓存对象中,当需要引用myKey值时,可以采用下面的使用方式: myValue1=Cache(“myKey”) if myValue1 <> Null then ‘非空时的动作 … end if

 asp.net提供了三种缓存替换的策略: 1.“腐烂搜索”(Scavenging) 比较类似于“最近最少使用”替换原则,当内存变得比教紧张时,缓存机制会找出最不常用和最不重要的对象,把它从内存中移出,以减轻系统压力。为控制“腐烂搜索”的具体行为,编程者必须在插入缓存对象时,指明插入它的耗费和多少时间内它必须被存取一次才能继续留在缓存中,以供替换时进行决择。 2.“到期控制”(Expiration) 编程者可以指定缓存对象的生存周期,这种指定的时间可以是绝对的也可以是相对的。例如绝对的时间(下午6:00到期),相对时间(该对象距最近一次存取它的时间满10分钟即到期)。当一个缓存对象到期后,它将从缓冲内存中移出,此时对该对象的索引将得到null值,除非又重新插入该对象。 3.“文件和键值依赖” 从外部文件或者是其他缓存键值是否改变,来决定本身键值是否有效。如果依赖发生改变,缓存对象将变得不可使用,并从缓存中移动出来。试想这样一种情况,应用从一个XML文件中读出金融信息,而该文件又被定期地修改。应用的作用是利用从该文件读出的信息构造一个图形对象以表示销售的情况。当应用读入文件时,它把数据插入缓存中,并记录下文件的依赖关系。当文件发生修改时,应用使开始产生的缓存对象无效并从内存中移出已经无用的数据,此后应用重新读入文件的数据,再把更新后的数据放入缓存,这样就完成了信息的更新,并返回给最终用户。 6.2.2 实例 例子: 从一个XML中读出用户信息并显示在页面上,页面提供了两个按钮,一个为增加用户,一个为刷新。我们在内存中建立了一个缓存对象“DataCache5”,它与客户信息文件”custom1.xml”建立了依赖关系。当custom1.xml文件未发生变化时,我们按下“刷新”按钮,可以看到信息是从缓存中读出的;当我们输入客户相应的资料,增加了一个客户以后,再按下“刷新“按钮后,我们可以看到客户信息变成了从文件读出。 1.ASPX源程序(performance/FormDataCache.aspx): <!-- 文件名:FormDataCache.aspx --> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> sub LoadData1 '当缓存对象DataCache5有效时,从缓存中读出客户信息;无效时,从文件读出信息 dim dv1 as DataView  dv1=Cache("DataCache5")  if dv1 = Nothing  dim ds as DataSet  dim fs as FileStream  dim sr as StreamReader

 ds=New DataSet  fs=New FileStream(Server.MapPath("custom1.xml"),FileMode.Open,FileAccess.Read)  sr=New StreamReader(fs)  ds.ReadXml(sr)  fs.Close()  dv1=new DataView(ds.Tables(0))  Cache.Insert("DataCache5",dv1,New cachedependency(Server.MapPath("custom1.xml")))  lblMsg.text="数据从文件中读出..."  Else  lblmsg.text="数据从缓存中读出..."  end if '绑定到DataGrid1对象  DataGrid1.datasource = dv1  DataGrid1.databind() end sub sub Page_Load(s as object,e as eventargs) '加载页面时,从文件中读出客户信息  if Not IsPostBack  LoadData1()  end if end sub sub AddBtn_Click(s as object,e as eventargs) '增加一个客户信息到文件中 dim FS as FileStream dim Reader as StreamReader dim DS as DataSet dim dr1 as DataRow dim tw1 as TextWriter  if Not Page.IsValid  lblMsg.text="还有域未曾填充..."  else  DS=New DataSet()  FS=New FileStream(Server.mappath("custom1.xml"),FileMode.Open,FileAccess.Read,FileShare.ReadWrite)  Reader=New StreamReader(FS)  DS.readxml(Reader)         FS.Close()  dr1=DS.tables(0).newrow()      dr1("CustName")=txtName.text  dr1("CustIdno")=txtIdno.text  dr1("CustCard")=txtCard.text  DS.tables(0).rows.add(dr1)               FS=New FileStream(Server.MapPath("custom1.xml"),FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite)  tw1=New StreamWriter(FS)  tw1=textwriter.synchronized(tw1)  DS.writexml(tw1)  tw1.close()  LoadData1()  end if end sub sub RefreshBtn_Click(s as object,e as eventargs)  LoadData1() end sub </script> <head> <title> 数据缓冲实验 </title> </head> <body> <center> <form runat=server> <h2>XML文件缓存测试</h2> <ASP:DataGrid id="DataGrid1" runat="server"         Width="600"         BorderColor="black"         ShowFooter="false"         CellPadding=3         CellSpacing="0"         Font-Name="Verdana"         Font-Size="8pt"           /> <hr> <h3>添加一个客户信息</h3> <table> <tr> <td>姓    名:</td> <td><ASP:textbox id=txtName runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtName" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>身份证号:</td> <td><ASP:textbox id=txtIdno runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtIdno" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>信用卡号:</td> <td><ASP:textbox id=txtCard runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtCard" Display="static" ErrorMessage="*" runat=server /> </td> </tr> </table> <p> <asp:button text="增加" οnclick="AddBtn_Click" runat=server /> <asp:button text="刷新" οnclick="RefreshBtn_Click" runat=server /> <p><p><p> <asp:label id=lblMsg runat=server /> </form> </center> </body> </html>

 查找更多的相关主题    
页面数据缓存
http://www.yuzi.net   2006-5-22 15:03:55  

6.2.1 基本概念 ASP.NET提供了一个相当出色的缓存引擎机制,它允许页面保存和索引HTTP请求所要求的各种各样的对象。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器。缓存的生存周期取决于应用的生存周期,也就是说,当应用重新启动时,缓存实际上也已重建。 缓存提供了一个简单的字典接口,以便于开发者能够轻而易举放置对象到缓存中,并在以后使用。最简单的情况下,放置一个对象到缓存中,就如同对字典增加一个条目。 例如: Cache(“myKey”)=MyValue 即是把MyValue放入缓存中一个叫myKey的缓存对象中,当需要引用myKey值时,可以采用下面的使用方式: myValue1=Cache(“myKey”) if myValue1 <> Null then ‘非空时的动作 … end if

 asp.net提供了三种缓存替换的策略: 1.“腐烂搜索”(Scavenging) 比较类似于“最近最少使用”替换原则,当内存变得比教紧张时,缓存机制会找出最不常用和最不重要的对象,把它从内存中移出,以减轻系统压力。为控制“腐烂搜索”的具体行为,编程者必须在插入缓存对象时,指明插入它的耗费和多少时间内它必须被存取一次才能继续留在缓存中,以供替换时进行决择。 2.“到期控制”(Expiration) 编程者可以指定缓存对象的生存周期,这种指定的时间可以是绝对的也可以是相对的。例如绝对的时间(下午6:00到期),相对时间(该对象距最近一次存取它的时间满10分钟即到期)。当一个缓存对象到期后,它将从缓冲内存中移出,此时对该对象的索引将得到null值,除非又重新插入该对象。 3.“文件和键值依赖” 从外部文件或者是其他缓存键值是否改变,来决定本身键值是否有效。如果依赖发生改变,缓存对象将变得不可使用,并从缓存中移动出来。试想这样一种情况,应用从一个XML文件中读出金融信息,而该文件又被定期地修改。应用的作用是利用从该文件读出的信息构造一个图形对象以表示销售的情况。当应用读入文件时,它把数据插入缓存中,并记录下文件的依赖关系。当文件发生修改时,应用使开始产生的缓存对象无效并从内存中移出已经无用的数据,此后应用重新读入文件的数据,再把更新后的数据放入缓存,这样就完成了信息的更新,并返回给最终用户。 6.2.2 实例 例子: 从一个XML中读出用户信息并显示在页面上,页面提供了两个按钮,一个为增加用户,一个为刷新。我们在内存中建立了一个缓存对象“DataCache5”,它与客户信息文件”custom1.xml”建立了依赖关系。当custom1.xml文件未发生变化时,我们按下“刷新”按钮,可以看到信息是从缓存中读出的;当我们输入客户相应的资料,增加了一个客户以后,再按下“刷新“按钮后,我们可以看到客户信息变成了从文件读出。 1.ASPX源程序(performance/FormDataCache.aspx): <!-- 文件名:FormDataCache.aspx --> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Data" %> <html> <script language="VB" runat="server"> sub LoadData1 '当缓存对象DataCache5有效时,从缓存中读出客户信息;无效时,从文件读出信息 dim dv1 as DataView  dv1=Cache("DataCache5")  if dv1 = Nothing  dim ds as DataSet  dim fs as FileStream  dim sr as StreamReader

 ds=New DataSet  fs=New FileStream(Server.MapPath("custom1.xml"),FileMode.Open,FileAccess.Read)  sr=New StreamReader(fs)  ds.ReadXml(sr)  fs.Close()  dv1=new DataView(ds.Tables(0))  Cache.Insert("DataCache5",dv1,New cachedependency(Server.MapPath("custom1.xml")))  lblMsg.text="数据从文件中读出..."  Else  lblmsg.text="数据从缓存中读出..."  end if '绑定到DataGrid1对象  DataGrid1.datasource = dv1  DataGrid1.databind() end sub sub Page_Load(s as object,e as eventargs) '加载页面时,从文件中读出客户信息  if Not IsPostBack  LoadData1()  end if end sub sub AddBtn_Click(s as object,e as eventargs) '增加一个客户信息到文件中 dim FS as FileStream dim Reader as StreamReader dim DS as DataSet dim dr1 as DataRow dim tw1 as TextWriter  if Not Page.IsValid  lblMsg.text="还有域未曾填充..."  else  DS=New DataSet()  FS=New FileStream(Server.mappath("custom1.xml"),FileMode.Open,FileAccess.Read,FileShare.ReadWrite)  Reader=New StreamReader(FS)  DS.readxml(Reader)         FS.Close()  dr1=DS.tables(0).newrow()      dr1("CustName")=txtName.text  dr1("CustIdno")=txtIdno.text  dr1("CustCard")=txtCard.text  DS.tables(0).rows.add(dr1)               FS=New FileStream(Server.MapPath("custom1.xml"),FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite)  tw1=New StreamWriter(FS)  tw1=textwriter.synchronized(tw1)  DS.writexml(tw1)  tw1.close()  LoadData1()  end if end sub sub RefreshBtn_Click(s as object,e as eventargs)  LoadData1() end sub </script> <head> <title> 数据缓冲实验 </title> </head> <body> <center> <form runat=server> <h2>XML文件缓存测试</h2> <ASP:DataGrid id="DataGrid1" runat="server"         Width="600"         BorderColor="black"         ShowFooter="false"         CellPadding=3         CellSpacing="0"         Font-Name="Verdana"         Font-Size="8pt"           /> <hr> <h3>添加一个客户信息</h3> <table> <tr> <td>姓    名:</td> <td><ASP:textbox id=txtName runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtName" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>身份证号:</td> <td><ASP:textbox id=txtIdno runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtIdno" Display="static" ErrorMessage="*" runat=server /> </td> </tr> <tr> <td>信用卡号:</td> <td><ASP:textbox id=txtCard runat=server /></td> <td><ASP:RequiredFieldValidator ControlToValidate="txtCard" Display="static" ErrorMessage="*" runat=server /> </td> </tr> </table> <p> <asp:button text="增加" οnclick="AddBtn_Click" runat=server /> <asp:button text="刷新" οnclick="RefreshBtn_Click" runat=server /> <p><p><p> <asp:label id=lblMsg runat=server /> </form> </center> </body> </html>


http://www.niftyadmin.cn/n/3682151.html

相关文章

Mysql5.7.6安装和主从配置手册

Mysql5.7.6 安装手册 linux server版本1.下载 http://dev.mysql.com/downloads/mysql/#downloads 2. 检查库文件是否存在&#xff0c;如有删除检查&#xff1a;rpm -qa | grep mysql删除&#xff1a; rpm -e mysql-libs-5.1.52.x86_64 --nodeps3. 检查mysql组和用户是否存在&am…

JDC 的 ACCESS_TOKEN 授权流程

JDC 的 ACCESS_TOKEN 授权流程 这里统一为JDC授权流程。最近在对接国外版的天猫和京东&#xff0c;在对接API直接&#xff0c;授权需要token的获取。像LAZADA&#xff0c;Shopee&#xff0c;和JD Central 这三家的接口&#xff0c;其token的授权流程类似&#xff0c;这里统一记…

MySQL Error--存储inode用完后报设备没有空间

问题描述&#xff1a;磁盘有足够剩余空间&#xff0c;但在创建文件或文件夹时报错&#xff0c;提示“设备没有空间”。 问题原因:当存储设备通过分区格式化为文件系统后&#xff0c;会分为两部分&#xff1a;1、block部分&#xff1a; 存储的最小单位为扇区(Sector)&#xff0c…

页面部分缓存概述

页面部分缓存概述 页面部分缓存允许缓存页的部分内容&#xff0c;其他部分则为动态内容。由于大部分Web页面的某些部分在每一次请求时都需要进行更改&#xff0c;所以&#xff0c;在这种情况下&#xff0c;就只能缓存页面的一部分&#xff0c;即页面部分缓存。 页面部分缓…

Java实现二维数组的排列组合

今天同事在做一个需求的时候&#xff0c;需要设计到二维数组的排列组合为题&#xff0c;就趁这个机会&#xff0c;实现了这个功能&#xff0c;现记录一下&#xff1b; public static void main(String[] args) {List<String[]> list new ArrayList<>();list.add(…

初学linux时遇到的那些哭笑不得的问题

1.终端中无法输入密码&#xff1f; 在终端输入密码&#xff0c;是不会在输入密码的时候看见星号或者圆点符号的。它不会有任何输入密码的视觉指示&#xff0c;也不会有任何光标移动&#xff0c;什么也不显示。 其实是输进去了&#xff0c;只是没有明文显示出来而已。输入完成后…

页面部分缓存

页面部分缓存是指输出缓存页面的某些部分&#xff0c;而不是缓存整个页面内容。实现页面部分缓存有两种机制&#xff1a;一种是将页面中需要缓存的部分置于用户控件&#xff08;.ascx文件&#xff09;中&#xff0c;并且为用户控件设置缓存功能&#xff08;包含用户控件的ASP.N…

Linux常用查询文件或日志命令

常见查询文件内容命令汇总如下&#xff1a; cat filename 查看日志&#xff0c;会打开整个文件&#xff0c;直接跑到最后面。tac filename 查看日志&#xff0c;会打开整个文件&#xff0c;倒序显示&#xff0c;不常用。more filename 查看日志&#xff0c;可以上下翻页&#…