asp_缓存

原创 2013年12月05日 15:01:10

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_完美登录

WebForm1.aspx:                   Login.aspx:             $(function () {      ...
  • u010909858
  • u010909858
  • 2013年11月30日 10:37
  • 315

ASP_一般处理程序_图片上传

首先创建一个文件,用于存放图片:Upload UploadImg.htm:                 window.onload = function() {             ...
  • u010909858
  • u010909858
  • 2013年11月27日 17:00
  • 1337

ASP_一般处理程序_实现增删给查

一:在web.config中加入数据库连接字符串:                 二:ListAllUser.html页面:          ...
  • u010909858
  • u010909858
  • 2013年11月27日 16:56
  • 417

asp_异步列表的增删查改

UserList.html: 来执行C#代码,若想执行,则是用JQuery-->                                 type...
  • u010909858
  • u010909858
  • 2013年12月03日 15:21
  • 651

spring缓存机制-入门实例(一)

spring是一个轻量级开源框架,以IoC(Inverse of Control:控制反转)和AOP(Aspect Oriented Programming:面向切面编程)为内核, 兼具功能强大的的...
  • sidongxue2
  • sidongxue2
  • 2014年06月13日 19:22
  • 3987

HTML5的数据缓存

在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储sessionStorage - 针对一个 session 的数据存储 ...
  • zhoujn90
  • zhoujn90
  • 2013年03月12日 00:27
  • 36084

《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项

MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本...
  • u010349169
  • u010349169
  • 2014年11月21日 23:01
  • 25583

HTML5新特性之离线缓存技术

一、离线缓存的起因: HTML5之前的网页,都是无连接,必须联网才能访问,这其实也是web的特色,这其实对于PC是时代问题并不大,但到了移动互联网时代,设备终端位置不再固定, 依赖无线信号,网络的可靠...
  • u013084331
  • u013084331
  • 2016年04月12日 16:34
  • 12310

Unity3D优化之缓存

Unity3D虽然是强大的游戏工具,但没有优化,也会做得不好,下有个简单的实验可以说明为什么需要优化。 这里的方法之一只是简单地将对象缓存起来,但缓存与否性能还真是天壤之别。场景里面只下面的基本物件...
  • net_guy
  • net_guy
  • 2017年01月09日 18:14
  • 1452

Glide 入门到精通之六——缓存基础

缓存基础在 Android App 中必须去做的是一个很好的实现图片加载组件,尝试去减少网络请求。Glide 在这里并没有什么不同。Glide 通过使用默认的内存和磁环缓存去避免不必要的网络请求。我们...
  • xx326664162
  • xx326664162
  • 2016年03月23日 14:46
  • 6012
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp_缓存
举报原因:
原因补充:

(最多只允许输入30个字)