您的位置:首页 > 编程语言

缓存之缓存文件依赖及编程方式设置输出缓存过期

2008-06-26 12:10 274 查看
可以缓存页面的一个文件或一组文件,设置依赖,但文件被改时,缓存失效

aspx在头的地方写

<%@ OutputCache VaryByParam="none" Duration="9999" %>

可以在此调用时间方便知道是否缓存

<%=DateTime.Now.ToString("T")%>

protected void Page_Load(object sender, EventArgs e)

{

Response.AddFileDependency(MapPath("luca.xml"));

}

用Gridview绑定XML

如果修改此XML缓存失效

另一种编程设置缓存失效

如有个页面是显示jobs数据的页面设置了缓存,当我在另一个页面做添加数据时,我就要把显示jobs的数据缓存去掉

添加一个页面

<%@ OutputCache VaryByParam="none" Duration="9999" %>

这个页面就叫jobs.aspx

获取jobs的值

用GridView等绑定随便我就不写了

加一个链接到添加jobs值得页面

<a href="AddJobs.aspx">AddJobs.aspx</a>

在addjobs页面

当在做完添加操作后写如下代码

string sql = "insert into jobs values('luca',30,50)";

SqlCommand cmd = new SqlCommand(sql,con);

con.Open();

cmd.ExecuteNonQuery();

con.Close(); HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("~/jobs.aspx"));

Response.Redirect("~/jobs.aspx");

}

就可以还一种情况

如果有多个页面都调用jobs数据并且都缓存了

上面的 HttpResponse.RemoveOutputCacheItem一次只能去除一个页面 我们就要用到Cache

在jobs.aspx中

protected void Page_Load(object sender, EventArgs e)

{

Cache.Insert("jobs", DateTime.Now);

Response.AddCacheItemDependency("jobs");

}

然后在addjobs中在添加操作后

Cache.Remove("jobs");

就ok了

如果另一个页面如jobsDetails.aspx

也缓存了jobs数据

也只要page_load中写

Response.AddCacheItemDependency("jobs");

也就同样会失去缓存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: