当前位置: 代码迷 >> ASP.NET >> 怎么用程序来即时更新设置了缓存时间的aspx,ascx页
  详细解决方案

怎么用程序来即时更新设置了缓存时间的aspx,ascx页

热度:2719   发布时间:2013-02-25 00:00:00.0
如何用程序来即时更新设置了缓存时间的aspx,ascx页
比如:
/new/a.aspx
/Control/b.ascx

这个页都设置了缓存时间为30分钟,比如当后台添加了新数据,又想让这二个页面数据能马上更新,而不是等这二个页面到了更新时间才去自动更新

这样的代码怎么写?

------解决方案--------------------------------------------------------
继承CacheDependency类型而创造自己的缓存依赖系统
SqlDataSourceDependency(SqlDataSource上启用EnableCaching并设置缓存依赖的表),只有在表数据修改时才真正读取数据库
------解决方案--------------------------------------------------------
Duration本来就是一个“最长时间”意思的。真正会不会使用缓存,就是看会不会设置缓存依赖项,使得后台数据修改时立刻清空缓存脏数据。如果这个不会,只会设置Duration,那就等于不会使用缓存。

在asp.net中提供和许多缓存依赖方法。比如SqlDependency,比如VaryByCustom。举个例子:
HTML code
<%@ Page Language="C#" %><%@ OutputCache Duration="6000" VaryByParam="*" VaryByCustom="方案1" %><!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 id="form1" runat="server">    <%= DateTime.Now.ToLongTimeString() %>    </form></body></html>
  相关解决方案