1.页面输出缓存
1>.在aspx页面顶部加上下面语句 ,则设置整个页面进行输出缓存
<%@ OutputCache Duration="30" VaryByParam="none" %>
Duration:设置缓存的有效时间;
VaryByParam:根据Request请求的参数进行改变缓存页面
VaryByControl:则根据页面中控件属性的改变进行缓存页面
eg: <%@ OutputCache Duration="30" VaryByParam="id" %>
则当请求的URL为 http://localhost/default.aspx?id=1 页面进行缓存,则如果请求URL地址 http://localhost/default.aspx?id=2 中ID数值进行改变 ,则页面马上进行重新缓存。url地址为 http://localhost/default.aspx?id=2&name=abc 则设置成VaryByParam="id;name";
2>. 用户控件进行缓存[WebUserControl.ascx]
在建立WebUserControl.ascx 用户控件时候,我们可以把单独不常改变数据的用户控件进行缓存.
使用方法:在.ascx文件的顶部加上"<%@ OutputCache Duration="10" VaryByParam="none" %>" 即可
3>.页面输出缓存进行局部取消缓存
页面局部取消缓存我们使用控件Substitution :
<asp:Substitution ID="Substitution1" runat="server" MethodName="yourMethod" />
其中MethodName用来设置不缓存局部获取字符串方法。
Code
protected static string yourMethod(HttpContext context)
{
return DateTime.Now.ToString();
}
/*
注意:
* 此方法必须为静态方法
* 参数类型必须为HttpContext
* 返回类型必须为字符串!
*/
2.程序Object 对象进行缓存
在项目开发中 ,我们有时候 通过抽象工厂模式拓展项目灵活性。在可以通过配置文件去对逻辑层中的模块进行缓存
Code
/// <summary>
/// 获取被缓存的对象
/// </summary>
/// <param name="valueName">对象key</param>
/// <returns></returns>
public static Object getValue(string valueName)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
return objcache[valueName];
}
/// <summary>
/// 插入被缓存的对象
/// </summary>
/// <param name="obj">需要缓存的对象</param>
/// <param name="valueName">对象key</param>
public static void insertValue(object obj,string valueName)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
objcache.Insert(valueName, obj);
}
/// <summary>
/// 插入对文件依赖的缓存对象。
/// 被依赖的文件修改 则缓存对象自动清除
/// </summary>
/// <param name="obj"></param>
/// <param name="valueName"></param>
/// <param name="filePath">文件的相对路径</param>
public static void insertValue(object obj, string valueName, string filePath)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
objcache.Insert(valueName,obj,new CacheDependency(HttpContext.Current.Server.MapPath(filePath)));
}
/// <summary>
/// 移除被缓存的对象
/// </summary>
/// <param name="valueName"></param>
public static void removeValue(string valueName)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Remove(valueName);
}
参考: http://ltp.cnblogs.com/
1>.在aspx页面顶部加上下面语句 ,则设置整个页面进行输出缓存
<%@ OutputCache Duration="30" VaryByParam="none" %>
Duration:设置缓存的有效时间;
VaryByParam:根据Request请求的参数进行改变缓存页面
VaryByControl:则根据页面中控件属性的改变进行缓存页面
eg: <%@ OutputCache Duration="30" VaryByParam="id" %>
则当请求的URL为 http://localhost/default.aspx?id=1 页面进行缓存,则如果请求URL地址 http://localhost/default.aspx?id=2 中ID数值进行改变 ,则页面马上进行重新缓存。url地址为 http://localhost/default.aspx?id=2&name=abc 则设置成VaryByParam="id;name";
2>. 用户控件进行缓存[WebUserControl.ascx]
在建立WebUserControl.ascx 用户控件时候,我们可以把单独不常改变数据的用户控件进行缓存.
使用方法:在.ascx文件的顶部加上"<%@ OutputCache Duration="10" VaryByParam="none" %>" 即可
3>.页面输出缓存进行局部取消缓存
页面局部取消缓存我们使用控件Substitution :
<asp:Substitution ID="Substitution1" runat="server" MethodName="yourMethod" />
其中MethodName用来设置不缓存局部获取字符串方法。
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
protected static string yourMethod(HttpContext context)
{
return DateTime.Now.ToString();
}
/*
注意:
* 此方法必须为静态方法
* 参数类型必须为HttpContext
* 返回类型必须为字符串!
*/
2.程序Object 对象进行缓存
在项目开发中 ,我们有时候 通过抽象工厂模式拓展项目灵活性。在可以通过配置文件去对逻辑层中的模块进行缓存
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
/// <summary>
/// 获取被缓存的对象
/// </summary>
/// <param name="valueName">对象key</param>
/// <returns></returns>
public static Object getValue(string valueName)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
return objcache[valueName];
}
/// <summary>
/// 插入被缓存的对象
/// </summary>
/// <param name="obj">需要缓存的对象</param>
/// <param name="valueName">对象key</param>
public static void insertValue(object obj,string valueName)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
objcache.Insert(valueName, obj);
}
/// <summary>
/// 插入对文件依赖的缓存对象。
/// 被依赖的文件修改 则缓存对象自动清除
/// </summary>
/// <param name="obj"></param>
/// <param name="valueName"></param>
/// <param name="filePath">文件的相对路径</param>
public static void insertValue(object obj, string valueName, string filePath)
{
System.Web.Caching.Cache objcache = HttpRuntime.Cache;
objcache.Insert(valueName,obj,new CacheDependency(HttpContext.Current.Server.MapPath(filePath)));
}
/// <summary>
/// 移除被缓存的对象
/// </summary>
/// <param name="valueName"></param>
public static void removeValue(string valueName)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Remove(valueName);
}
参考: http://ltp.cnblogs.com/