博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缓存整个页面
阅读量:4635 次
发布时间:2019-06-09

本文共 1339 字,大约阅读时间需要 4 分钟。

3.2.3 缓存整个页面

在一些大型门户系统中,访问量特别大,可能每分钟就会有上千次的访问。而且通常门户系统的首页非常复杂,项目特别多,每一次访问都需要多次操作数据库。这对服务器的性能是个很大的考验。

但是我们发现通常服务器首页更新的频率不是非常快。所以,完全可以让服务器的首页缓存起来,过一段时间再更新。这样服务器就不用每次请求都重新读取数据库并生成页面了。

刚好,ASP.NET为我们提供了一个@OutputCache指令,我们只要在需要缓存数据的页面使用该指令,即可实现对整个页面进行缓存。 视频教学:光盘/videos/3/OutputCacheCommand.avi 长度:6分钟

1. 基础知识指令

@OutputCache指令用于以声明的方式控制ASP.NET页或页中包含的用户控件的输出缓存策略。格式如下:

  1. <%@ OutputCache Duration="5" VaryByControl="none" %

这行语句的意思是无条件地为该页缓存5秒钟。

@OutputCache指令的属性如表3-6所示。

表3-6 @OutputCache指令属性

 

在@OutputCache指令的所有属性中,其中Duration和VaryByParam属性是必选的属性。

2. 实例描述

为了方便,这里我们就不再模拟一个大型门户系统了。

我们只在页面上打印当前时间,并让页面每秒钟刷新一次。这样的话,每一次刷新打印的时间都会不一样。

在这个前提下我们将该页面缓存5秒,如果缓存成功,则5秒内页面数据不会变化,在第6秒时才更改为新的时间值。

3. 实例应用

【例3-3】缓存整个页面。

(1) 打开上节使用的项目,创建一个新的Web窗体,命名为OutputCache.aspx。

(2) 编辑该Web窗体,在页面里添加如下两行代码:

  1. <%=DateTime.Now.ToString() %>   
  2. <script>setTimeout("locationlocation.href=location.href",1000)</script

第一行在页面中打印当前时间,第二行使页面每隔1秒钟刷新一次。

(3) 在页面头部添加缓存代码如下:

  1. <%@ OutputCache Duration="5" VaryByControl="none" %

4. 运行结果

保存所有文件,运行项目。

访问OutputCache.aspx页面,结果如图3-5所示。

 
图3-5 OutputCache.aspx页面

该页面将每秒钟更新一次,但是页面内容会缓存5次,在第6次访问的时候更新。

5. 实例分析

源码解析:

该实例非常简单,在页面打印当前时间,并让页面每秒钟刷新一次。然后设置页面缓存5秒钟。

其实细心的读者可能会发现页面时间每次更新都会跨越6秒,而不是我们想象中的5秒钟换一个值。这是因为系统计算时间是在第一次访问开始,到第5次刷新时刚好5秒,所以这次显示的还是第一次访问的时间。处理完该次请求,缓存的数据作废,在第6次刷新(即第7次访问)的时候页面才重新生成并缓存页面。

 

转载于:https://www.cnblogs.com/yaoxiaodan/p/5290160.html

你可能感兴趣的文章
58前端内推笔试2017(含答案)
查看>>
写给自己的web开发资源
查看>>
Java学习笔记
查看>>
sprintf 和strcpy 的差别
查看>>
jQuery_第五章_jQuery事件和动画
查看>>
打表打表何谓打表?
查看>>
MPEG4与.mp4
查看>>
实验5
查看>>
成长轨迹44 【ACM算法之路 百炼poj.grids.cn】【字符串处理】【2799、2976、2975、2742】...
查看>>
git 下载 安装
查看>>
录制终端信息并回放
查看>>
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
《BI项目笔记》用Excel2013连接和浏览OLAP多维数据集
查看>>
C语言对mysql数据库的操作
查看>>
SQL Server 数据库备份
查看>>
INNO SETUP 获得命令行参数
查看>>
http编程学习(C#)
查看>>
DNN 数据访问策略 (转)
查看>>
Sublime Text 自动换行
查看>>