比如:
/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>