asp_缓存
来源:互联网 发布:时代网络 编辑:程序博客网 时间:2024/05/24 03:20
1.页面缓存的实现:
<%@ OutputCache Duration="15" VaryByParam="id;name"%>
<%--1.*:代表只要请求报文发生任何改变,那么缓存就失效一次--%>
<%--3.设置一个请求当中的参数的key,多个key之间用;隔开--%>
<%--2.none:代表不管参数如何变化,这缓存都会持续15秒--%>
2.数据源缓存:
页面中拖入ObjectDataSource控件,然后在属性窗口中设置:
CacheDuration:30(自定义)
EnableCacheing:True(必须)
该实例可以通过数据库跟踪机制进行验证,方法:打开数据库跟踪机制,清楚里面全部信息,然后加载页面,在设置好的时间内,本实例为30秒,如果进行刷新,数据库跟踪中没有任何的消息,则代表数据源缓存正确执行。
3.数据库缓存配置:
C:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat (VS2012开发人员命令提示) ,可以直接在其内输入:aspnet_regsql -S . -E -ed -d bjhksj -et -t HKSJ_USERS
如果不存在,则在命令窗口中执行:cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319(回车)
aspnet_regsql -S . -E -ed -d bjhksj -et -t HKSJ_USERS
如下:
完成后数据库中:
然后在web.Config中:
红色字体在config中进行相应的修改<system.web>
<caching>
<sqlCacheDependency enabled="true">
<databases>
<add name="HeimaRegulation" connectionStringName="connectionString" pollTime="500"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
则配置完成!!!
4.自定义缓存:
SelfCacheDemo.aspx:
<div>
<asp:Button ID="Button1" runat="server" Text="显示缓存" />
<asp:Button ID="Button2" runat="server" Text="删除此缓存" onclick="Button2_Click" />
</div>
SelfCacheDemo.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
//添加一个缓存数据
if (!IsPostBack)
{
//HttpContext.Current.Cache已经进行了封装,则可以直接用下面的方法进行
//Cache
//添加一条缓存数据
//Cache.Insert("c1", DateTime.Now);此方法重新生成后,才能够改变
//添加绝对过期时间的缓存
//Cache.Insert("c1", DateTime.Now, null,DateTime.Now.AddSeconds(10), TimeSpan.Zero);//添加绝对过期时间new DateTime().AddSeconds(15),则其后必须跟有TimeSpan.Zero
//添加滑动窗口的过期时间缓存,特定时间内,10秒内访问则继续延迟10秒钟,如果单位 时间内没有访问,则不会延迟
//Cache.Insert("c1",DateTime.Now,null,DateTime.MaxValue,TimeSpan.FromSeconds(10));
//添加一个依赖项的缓存,Cache是对多有人和所有的请求的
//天机一个缓存,才缓存以来XML文件(可以为其他文件),当xml文件发生变化时,缓存失效
//使用场景:数据正好是从数据里来的,那么可以把数据做成以来文件缓存
Cache.Insert("c1", DateTime.Now,new System.Web.Caching.CacheDependency(Request.MapPath("a.xml")), DateTime.MaxValue, TimeSpan.FromSeconds(10));
//依赖数据库缓存
//适用场景:缓存的数据跟依赖的表相关,可以用这个方式。
Cache.Insert("c1", DateTime.Now, new SqlCacheDependency("bjhksj","HKSJ_USERS"));
Response.Write("写入缓存成功");
}
else
{
Response.Write(Cache["c1"]);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Cache.Remove("c1");
Response.Write("删除成功");
}
LeftBar.aspx.cs:
public partial class LeftBarMenuDemo : System.Web.UI.Page
{
public List<Model.HKSJ_Main> AllMenus { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
AllMenus = Cache["menu"] as List<Model.HKSJ_Main>;
if (AllMenus == null)
{
//从数据库中读取,并写入缓存
BLL.HKSJ_Main mainServer = new BLL.HKSJ_Main();
AllMenus = mainServer.GetModelList(string.Empty);
Cache.Insert("menu", AllMenus, null, DateTime.Now.AddMinutes(1), TimeSpan.Zero);
}
}
}
LeftBar.aspx
<div id="leftBar">
<%foreach(var item in this.AllMenus)
{%>
<p>
<%=item.ID %>
</p>
<%} %>
</div>
- asp_缓存
- asp_验证码
- asp_完美登录
- asp_错误解决
- asp_一般处理程序_Table2list
- asp_异步无刷新分页
- ASP_一般处理程序_图片上传
- asp_一般处理程序_自增
- asp_下载文件与读取ip地址
- asp_异步列表的增删查改
- asp_异步增删查改(2)
- asp_异步增删查改(3)
- asp_增删查改(4)
- ASP_一般处理程序_实现增删给查
- asp_异步_修改_如何实现父子页面之间的相互交互
- 缓存
- 缓存
- 缓存
- 从下载者木马里提取的下载模块
- java导出word并压缩,含有表
- C语言中volatile关键字的作用
- ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
- silverlight和javascript交互
- asp_缓存
- Java类加载原理及类加载器
- 九句良言胜敲十年代码
- 项目4 多科成绩单
- JS禁止浏览器后退键
- Servlet、ServletContext与ServletConfig的详解及区别
- Pre-defined C/C++ Compiler Macros
- 零配置 之 12.3 注解实现Bean定义 ——跟我学spring3
- 模块编译错误处理——undefined reference