zoukankan      html  css  js  c++  java
  • 缓存整个页面

    3.2.3 缓存整个页面

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

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

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

    1. 基础知识——@OutputCache指令

    @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次访问)的时候页面才重新生成并缓存页面。

  • 相关阅读:
    行内块 块级元素 行内元素
    3种飞翼布局
    emmit
    Linux基础命令
    关于微信小程序下拉出现三个小点
    关于vue,angularjs1,react之间的对比
    微信小程序开发遇见的问题之一
    关于微信小程序的尺寸关系
    关于微信小程序的开发步骤
    关于前端基础知识的一些总结
  • 原文地址:https://www.cnblogs.com/yaoxiaodan/p/5290160.html
Copyright © 2011-2022 走看看