对asp.net缓存 的深入了解(3)

--------------------------------------------------------------------------------
1.ObjectDataSource这样的数据源控件,可以在属性栏中找到相应的属性,进行设置,下面我列出个例子,设置启动缓存,缓存时间为10秒,时间类型为绝对时间。

<asp:ObjectDataSource runat="server" EnableCaching="True" CacheDuration="10" CacheExpirationPolicy="Absolute"></asp:ObjectDataSource>

2.没有缓存属性的控件要加缓存

复制代码 代码如下:


protected void Page_Load(object sender, EventArgs e) 
        {
            string date = DateTime.Now.ToString();
            TextBox1.Text = date;
        }


复制代码 代码如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="cache.WebForm1" %>
<%@ OutputCache Duration="10" VaryByControl="TextBox1"%>
<!--VaryByControl的参数为要缓存的控件id-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form runat="server">
        <div>
            <asp:TextBox runat="server"></asp:TextBox>
        </div>
    </form>
</body>
</html>


这里的TextBox控件就加了缓存,这里的缓存时间为10秒,也就是10秒内ASP.NET不会再执行页面的生命周期和相关代码而是直接使用缓存的页面。
--------------------------------------------------------------------------------

五、缓存依赖

--------------------------------------------------------------------------------

复制代码 代码如下:


protected void Page_Load(object sender, EventArgs e) 
        {
            string str = "";
            if (Cache["key"] == null)
            {
                str = System.IO.File.ReadAllText(Server.MapPath("TextFile1.txt")); //读取TextFile1.txt文件中的数据
                CacheDependency dp = new CacheDependency(Server.MapPath("TextFile1.txt"));//建立缓存依赖项dp
                Cache.Insert("key", str, dp);
                Response.Write(Cache["key"]);   //如果TextFile1.txt这个文件的内容不变就一直读取缓存中的数据,一旦TextFile1.txt文件中的数据改变里面重新读取TextFile1.txt文件中的数据
            }
            else
            {
                Response.Write(Cache["key"]);
            }

}


 缓存依赖项使缓存依赖于其他资源,当依赖项更改时,缓存条目项将自动从缓存中移除。缓存依赖项可以是应用程序的 Cache 中的文件、目录或与其他对象的键。如果文件或目录更改,缓存就会过期。
--------------------------------------------------------------------------------

六、配置文件中设置缓存

--------------------------------------------------------------------------------

复制代码 代码如下:


<system.web>
  <caching>
    <outputCacheSettings>
      <outputCacheProfiles>
     <addname="ProductItemCacheProfile" duration="60"/>
   </outputCacheProfiles>
</outputCacheSettings>
   </caching>
</system.web>


复制代码 代码如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="cache.WebForm1" %>
<%@ OutputCache CacheProfile="ProductItemCacheProfile" VaryByParam="none" %>
<!--这里的CacheProfile参数与配置文件中的保持一至-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgszx.html