紫色光传播网
关于我们 | 会员登陆 | 本站服务项目 | 收藏本站 | 留 言 薄
联系方式:QQ:276016898 电话:(0773)-2182627 (0)13507730004 EMAIL:wa#wahaha8.com
 | 服务项目 | 建站知识 | 网站首页 | 资源下载 | 访客留言 | 代理商城 | 网络编程 | 网页制作 | 电影电视 | 小游戏 | 
热门搜索关键字: 模板 | 错误 | 标签 | 采集 | 数据库 | 组件 | 代码 | 特效 | 木马 | 插件 | 虚拟主机
wahaha8.com baidu
栏目导航  
栏目更新推荐  
·Asp.net cache 简述
·ASP.NET 2.0程序安全的基础知识
·你必须学习的10项.NET技术
·ASP.NET网络编程中常用到的27个函数
·在ASP.NET中跨页面实现多选
·asp.net身份验证和授权
·使用ASP.Net Forms模式实现WebServ
·ASP.NET 2.0页面性能的考虑
点击TOP(10)  
·Asp.net cache 简述
·ASP.NET 2.0程序安全的基础知识
·你必须学习的10项.NET技术
·ASP.NET网络编程中常用到的27个函数
·在ASP.NET中跨页面实现多选
·asp.net身份验证和授权
·使用ASP.Net Forms模式实现WebServ
·ASP.NET 2.0页面性能的考虑
·通过数据捆绑将数据添加到ASP.NET 
·编程实现QQ表情文件CFC格式
图片文章  

没有任何图片文章
 
您现在的位置: 紫色光传播 >> 网络编程 >> .net编程 >> 正文
Asp.net cache 简述
http://www.wahaha8.com 文章来源:www.zsgsoft.cn 点击数: 更新时间:2008-7-10 【字体:



发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

Asp.net支持三种类型的cache
  
  想写一个技术快速概述,可能写得太多了。技术概略的目的是以最快最简单的方式描述出技术要点,也是我希望的最有效率的知识传播方式。
  
  
  1. 页面/控件cache
  
  2. 应用程序级cache
  
  3. 浏览器客户端cache
  
  
  从实现方式来看,页面/控件cache和应用程序级cache都是存放在服务器内存里面的,随着内存的紧张程度,这些内容有可能在失效之前被提前删除。(cache的特性决定这些内容是可以放心得删除掉的)。浏览器客户端的cache是存放在客户端浏览器的cache里面 ,比如IE的临时文件夹就是起的cache的作用。每次用户请求一个页面的时候,浏览器会先从cache里面去查找一下有没有符合要求的还没有过期的cache内容,如果有的话就从cache里面直接读取跳过网络传输。
  
  
  
  下面演示一下在Asp.net里面具体的写法:
  
  1. 页面/控件cache可以申明在aspx,ascx文件里面,也可以在code behind里面作出申明。
  
  <%@ OutputCache Duration="#ofseconds"
  
   Location="Any | Client | Downstream | Server | None |
  
   ServerAndClient "
  
   Shared="True | False"
  
   VaryByControl="controlname"
  
   VaryByCustom="browser | customstring"
  
   VaryByHeader="headers"
  
   VaryByParam="parametername"
  
   CacheProfile="cache profile name | ''"
  
   NoStore="true | false"
  
   SqlDependency="database/table name pair | CommandNotification"
  
  %>
  
  主要的参数是:
  
  Duration: cache有效的时间,单位秒
  
  Shared:只对控件有效,在控件可以同时应用与多个页面的时候,多个页面是否可以共享这一个cache而不用每个页面维护自己对这个控件的cache。
  
  VaryByControl:cache随控件的ID变化
  
  VaryByCustom:cache随用户自定义的一个变量来变化,该变量是在这里指定,然后应该在Global.ascx里面实现:
  
  public override string GetVaryByCustomString (
  
  HttpContext context,
  
  string custom
  
  )
  
  该声明的custom参数就是在OutPutcache里面申明的变量。通过在这个函数里面对不同的custom参数返回不同的字符串值来表示不同的cache内容。
  
  VaryByHeader, VaryByParam,CacheProfile也是设置不同的cache版本的。
  
  NoStore表示不允许把cache的内容写到内存以外其它的存储设备上,这是对安全性比较高的内容的需要。
  
  SqlDependency是和数据库相关的。
  
  
  2. 应用程序级cache
  
  只可以在code behind里面获得,特点是可以实现自己需要的任何cache逻辑。
  
  可以通过Page.Cache获得,类的名字是System.Web.Caching.Cache
  
  
  3. 浏览器客户端cache
  
  只可以在codebehind里面获得,可以通过Response.Cache来指定,这是一个HttpCachePolicy对象。
  
  
  
  另外: 可以指定一个TimeSpan作为cache的时间,不用每次来折算到秒。
  
   public TimeSpan(long ticks);
  
   public TimeSpan(int hours, int minutes, int seconds);
  
   public TimeSpan(int days, int hours, int minutes, int seconds);
  
   public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds);
  
  如果要cache保留一个小时1分1秒,可以直接
  
  new TimeSpan(1,1,1)
  
  而不用先计算
  
  1小时1分1秒=3600+60+1=3661秒,然后在传入3661作为有效期。
  http://www.cnblogs.com/ThomasNet/archive/2006/11/26/573104.html

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明
Copyright 2006-2008 Wahaha8.com, all rights reserved. Designed by wahaha8.com
桂ICP备05011060号