Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP > ASP.NET缓存技术学习入门---页面缓存(OutPut Caching)
【标  题】:ASP.NET缓存技术学习入门---页面缓存(OutPut Caching)
【关键字】:ASP.NET,---,OutPut,Caching
【来  源】:http://blog.csdn.net/lucky_yyx/archive/2007/04/19/1570028.aspx

ASP.NET缓存技术学习入门---页面缓存(OutPut Caching)

Your Ad Here 以前写程序从来都没用过缓存(水平太菜),好在以前做的网站访问量都非常的小,所以性能问题也不突出,但是如果做一个正规的项目,不论大小,缓存技术是必须要使用到的。今天学习了三种常用的缓存技术,下面先讲第一种,非常的简单,相信大家一定能看明白。

  先说下为什么要用缓存,在正常情况下,当一个用户要访问www.abc.com/index.aspx这个页面时,他的IE会给我们的网站服务器端发出一个浏览请求,我们的服务器收到请求后就会执行index.aspx文件相关的代码,执行完成后生成一个HTML文件,然后发送给用户的IE,如果有1000个人访问这个页面的话,哪服务器就要把index.aspx的代码执行1000次再发送1000次,在使用页面缓存技术之后我们把index.aspx页面缓存起来,这样就有可能做到1000个人访问,服务器只执行200次代码,再发送1000次,与前面相比较服务器少执行800次代码,大家想想看这会对服务器的效率有多么大的提高啊!如何做到这一点呢?请看“页面缓存”

页面缓存(OutPut Caching)


  页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明
<%@ OutputCache Duration="60" VaryByParam="none" %>
Duration="60" 的意思是指定缓存的时间为60秒,可根据情况自已设定
VaryByParam="none" 的意思是设定无参数缓存(有参数的缓存下面会讲到)
  这两个参数是必须的,不能缺省。另外还有一个重要的参数
DiskCacheable="true|false" 意思是要不要把缓存放到硬盘上,如果设为false则缓存数据会放到内存中

  这里需要注意一下,如果页面数据很小的话可以把缓存数据放到内存中,如果数据较大最好放到硬盘上,
否则会占用大量内存影响服务器运行,如果数据缓存到硬盘上的话,记得要把Duration=""的值设的大一些如Duration="3600",如果设的太小,服务器会过于频繁的在硬盘上写数据反而会降低性能,如果在内存中缓存数据Duration""则不要设的太长,当然具体时间长短要大家自己多尝试才知道。

  以上就是一个最简单的页面缓存的实现方法,再来回过头讲一下原理,先看个例子:
  新建一个cache1.aspx文件,在页面开始处加一句<%@ OutputCache Duration="60" VaryByParam="none"
%>然后在代码里写一句Response.Write(DateTime.Now),运行后显示出了当前时间,好,我们开始刷新这个页面,你会发现页面显示的时间停住不变,始终是第一次运行时的时间,现在,我们等待1分钟后再刷新页面,这时页面显示的时间变成了当前时间,再反复刷新,显示的时间又不变了,为什么呢?当第一个用户请求浏览cache1.aspx页时,服务器会执行cache1.aspx的代码生成一个HTML发送给用户,同时把这个HTML缓存到内存中,当第二次,第三次……发送浏览请求时,服务器不再执行cache1.aspx里的代码而是直接把缓存中的HTML发给用户端,60秒内都是如此,60秒后缓存被消除,当下一个请求出现时服务器会再执行cache1.aspx的代码,并把生成的HTML缓存60秒……

  这里我们要注意一个问题,如果你的部分数据要求能够实时显示的话,那就不能使用整页缓存了,就要使用部分缓存,如何部分缓存,最简单的办法就是自定义一个用户控件,在用户控件里开头加<%@ OutputCache Duration="60" VaryByParam="none" %>的声明,这样当你在某个页面里使用这个控件时,页面里的其他数据不会被缓存,只有这个控件的内容会被缓存,具体就说了,很简单,大家自己试一试吧! 

 
关于安全的ActiveX控件的编写,纠正大家一点错误,包括MSDN上也有问题:【上一篇】
用ASP+CSS实现随机背景:【下一篇】
【相关文章】
  • ASP.NET 防盗链源码
  • ASP.NET(用c#),弹出文件保存对话框窗口
  • ASP.NET 2.0 AJAX Webservice调用 返回DataTable 新解
  • asp.net动态加载用户控件问题解决日记
  • dropdownlist中----号的实现
  • 在PHP中使用ASP.NET AJAX
  • asp.net2.0 javascript 回调服务器端方法
  • Asp.Net Trace
  • 使用easyobjects asp.net ajax + mygeneration(2) easyobjects概述
  • 一个简单的基于System.Web.Mail的ASP.Net邮件发送程序
  • 【随机文章】
  • 精通ejb(5)
  • 解决xmms不能播放mp3问题 (rh9版)和linux做主机NAT上网
  • Dreamweaver MX 2004 行为之打开浏览器窗口
  • AIX经验汇总
  • linux下不能正常测试邮箱服务的解决方法
  • 传说的.net官方编码方法和命名规则
  • 股票报价的WebService之二
  • 我用linux入侵日本大型网站实战记录
  • 图片模糊、锐化、雕刻
  • 亲密接触ASP.Net(2)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.