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

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

    </div>
</body>
</html>


这样就给页面添加了缓存为60秒的页面。
--------------------------------------------------------------------------------

七、缓存的回调函数

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

复制代码 代码如下:


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, DateTime.Now.AddSeconds(20), Cache.NoSlidingExpiration, CacheItemPriority.Low, CacheItemRemovedCallback);
                //CacheItemPriority这个参数为缓存的优先级他分好多种级别,为了防止缓存占满时系统自己删除缓存的优先顺序废除缓存的,后面的为回调函数的名称。
                Response.Write(Cache["key"]);   //如果TextFile1.txt这个文件的内容不变就一直读取缓存中的数据,一旦TextFile1.txt文件中的数据改变里面重新读取TextFile1.txt文件中的数据
            }
            else
            {
                Response.Write(Cache["key"]);
            }

}

public void CacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason) //这个为缓存移除时的回调函数,一定要保持与 Cache.Insert()方法中的最后一个参数名字一致,
            //这里使用了委托,你可以在 Cache.Insert()这个函数中转定义看到的,所以这里的格式就只能按我写的这种方法签名写。
        {
            System.IO.File.WriteAllText(Server.MapPath("log.txt"),"缓存移除原因为:"+reason.ToString());
        }


例子中的回调函数写的是生成一个log.txt,文件记录每一次缓存移除的原因。
--------------------------------------------------------------------------------

八、配置文件中的缓存设置

--------------------------------------------------------------------------------
我们服务器有开启缓存功能, 缓存功能可以减少您访问网站时候网站在服务器里面的编译时间, 大大加快您网站的访问速度, 如果您需要对您网站进行频繁更新的话, 您可以考虑暂时将缓存时间减少,或者暂时关闭缓存

请将下列代码放进web.config文件里面放在您网站的根目录;

1.在web.config里面设置缩小缓存的时间,请在web.config里面用下面的定义

<system.webServer>
<caching>
<profiles>
<remove extension=".aspx" />
<add extension=".aspx" policy="CacheForTimePeriod"

kernelCachePolicy="DontCache" duration="00:00:01" varyByQueryString="*" />
</profiles>
</caching>
</system.webServer>

2. 如果要关闭某个页面的caching功能,请在web.config里面用下面的定义

<configuration>
<location path="showStockPrice.asp">
<system.webServer>
<caching>
<profiles>
<remove extension=".asp" />
<add extension=".asp" policy="DontCache" kernelCachePolicy="DontCache"/>
</profiles>
</caching>
</system.webServer>
</location>
</configuration>

3. 如果要关闭整个程序的caching功能,请在web.config里面用下面的定义

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

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