asp.net 自动检测缓存内容是否变化

1 使用cache.Insert方法时,新建一个System.Web.Caching.CacheDependency对象,告诉缓存,当缓存的内容发生变化时,将删除缓存,并重新缓存

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

namespace Cachting
{
    public class CityListInfo
    {
        public string Timestamp { get; set; }
        public string Html { get; set; }
    }

    public partial class CitiesControl : System.Web.UI.UserControl
    {
        private static readonly string fileName = "/CitiesList.html";
        private static readonly string CACHE_KEY = "cities_html";
        private CityListInfo cityInfo;
        private bool cached = false;
        protected void Page_Load(object sender, EventArgs e)
        {
            cityInfo = Cache[CACHE_KEY] as CityListInfo;
            if (cityInfo==null)
            {
                cityInfo = new CityListInfo { Timestamp=DateTime.Now.ToLongTimeString(),
                    Html =File.ReadAllText(MapPath(fileName))};
                //只要未修改文件就应该缓存数据
                Cache.Insert(CACHE_KEY, cityInfo,new System.Web.Caching.CacheDependency(MapPath(fileName)));
            }
            else
            {
                cached = true;
            }
        }

        public string GetCities()
        {
            //return File.ReadAllText(MapPath(fileName));
            return cityInfo.Html;

        }

        public string GetTimeStamp()
        {
            // return DateTime.Now.ToLongTimeString();
            return cityInfo.Timestamp + (cached ? "<b>Cached</b>" : "");
        }
    }
}
时间: 2024-11-07 19:09:42

asp.net 自动检测缓存内容是否变化的相关文章

自动检测&amp;后台复制光盘内容

原理:利用python的win32模块,注册服务,让代码在后台运行,检测光盘并拷贝文件 启动的方法就是直接在cmd下,main.py install ,然后去windows 的服务下就可以看到The smallestpossible Python Service 这个服务,你可以启动,停止,还可以设置成开机自动启动.启动服务后,会自动检测光盘并在后台拷贝文件 main.py import win32serviceutil import win32service import win32event

Asp.Net中MVC缓存详解

本文通过介绍了Asp.Net中MVC缓存的种类,以及他们之间的区别等内容,让学习者能够深入的了解MVC缓存的原理机制,以下是具体内容: 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术.当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝. Web应用缓存技术大体上可以分为两类:服务端缓存和客户端缓存.两种目标都是减少重复性内容的生成和网络传输工作,因为缓存数据存储的位置不同,而分为服务端缓存和客户端缓存. 服务端缓存 服务端缓存技术关注于服务端数据查询,生成或者操作

细说 ASP.NET控制HTTP缓存[转]

阅读目录 开始 正常的HTTP请求过程 缓存页的请求过程 缓存页的服务端编程 什么是304应答? 如何编程实现304应答 如何避开HTTP缓存 在上篇博客[细说 ASP.NET Cache 及其高级用法]中, 我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API .在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的, 只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类缓存技术, 然而,由于WEB应用程序的服务对象是客户

Elasticsearch 动态映射——自动检测

ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引.类型等信息,在索引的同时会自动完成索引.类型.映射的创建. 那么什么是映射呢?映射就是描述字段的类型.如何进行分析.如何进行索引等内容. 本篇就着重讲述下,ES中映射的自动检测特性. 更多内容参考:Elastisearch知识总结 字段自动检测 在某个字段第一次出现时,如果之前没有定义过映射,ES会自动检测它可能满足的类型,然后创建对应的映射. JSON数据 ES中的数据类型 null 不会添加字段 true or false

029.ASP.Net中的缓存机制

ASP.Net中的缓存 输出缓存1. 整页缓存 缓存整个页面的输出结果 Duration 缓存时间:绝对过期 VaryByParam:依据参数值缓存,没有为None,多个用;分割 Location:缓存的位置 代码在 ftp 的 Cache目录内 2. 片段缓存 使用用户控件,将需要缓存的内容放入用户控件 指定shared=true,可以多个页面共享缓存结果 3.Substitution控件 在整页都缓存的情况下,可以部分更新内容 配置MethodName属性,对应的.cs中的方法原型是 str

Ajax实现:注册时自动检测用户名是否存在

当光标离开用户名文本框时,自动检测当前用户名是否可以用于注册 1 <tr> 2 <td width="231px" align="center" valign="top" style="height: 26px">用户名</td> 3 <td valign="top" width="357px" align="left" st

LoonAndroid自动检测输入框 (转)

LoonAndroid框架,同时给我们提供了一套自动检测输入规则的工具,用起来很是方便,下面介绍一下这个东东的使用方法(注意,该说明是基于项目已经集成了LoonAndroid框架而言,如果您未集成该框架,请先按照相关说明集成该框架而后方能使用): 1.Validator 验证器类 ①实例化: Validator validator = new Validator(this): ②设置监听回调:validator.setValidationListener(...) 其中监听接口为:Validat

LoonAndroid自动检测输入框 --- Author: rose &amp;&amp; [email&#160;protected]

LoonAndroid框架,同时给我们提供了一套自动检测输入规则的工具,用起来很是方便,下面介绍一下这个东东的使用方法(注意,该说明是基于项目已经集成了LoonAndroid框架而言,如果您未集成该框架,请先按照相关说明集成该框架而后方能使用): 1.Validator 验证器类 ①实例化: Validator validator = new Validator(this): ②设置监听回调:validator.setValidationListener(...) 其中监听接口为:Validat

JavaScript实现http地址自动检测并添加URL链接

一.天生我材必有用 给http字符自动添加URL链接是比较常见的一项功能.举两个我最近常用到的自动检测http://地址并添加链接的例子吧,首先是QQ邮箱,在使用QQ邮箱时,如果输入了URL地址(http://或是https://开头),则QQ邮箱会自动给这个地址添加可打开的链接.如下图所示: 还有就是微博客产品,例如twitter(zxx://翻墙可以follow苍井空姐姐哦~~ ^_^),或是国产的新浪微博.当您的微博信息中有类似于http://www.zhangxinxu.com/的URL