1,ASPX页面缓存 页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %>  这样整个页面的内容都会被缓存,页面中的ASP.NET代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。  页面缓存是针对所有这个页面的访问者。这样1个访问者和1万个访问者、一次访问和100万次访问对数据库的压力是一样的。
Duration="60" 的意思是指定缓存的时间为60秒,可根据情况自已设定,超过这个时间则缓存失效,再次生成以后会缓存60秒,以此类推。 VaryByParam="none" 的意思是设定无参数缓存(有参数的缓存下面会讲到) 但是对于一些有参数的页面,比如新闻内容页来讲(比如是针对于ViewNews.aspx页面的,不会自动去读取?id=1),如果如上设置的话,则会缓存在第一个看到的新闻,因为?id=2、?id=3只是页面的不同参数而已,为了能让不同的新闻各种缓存,因此可以设置VaryByParam="id",表示对于不同的id参数进行单独缓存。如果有多个确定缓存参数,则将参数名用分号隔开即可,比如VaryByParam="id;number"。 如果想让任何不同的查询字符串都创建不同的缓存,则设置VaryByParam="*",一般情况下设置“*”就足够了。 这两个参数是必须的,不能缺省。另外还有一个重要的参数DiskCacheable="true|false" 意思是要不要把缓存放到硬盘上,如果设为false则缓存数据会放到内存中。 这里需要注意一下,如果页面数据很小的话可以把缓存数据放到内存中,如果数据较大最好放到硬盘上,否则会占用大量内存影响服务器运行,如果数据缓存到硬盘上的话,记得要把Duration=""的值设的大一些如Duration="3600",如果设的太小,服务器会过于频繁的在硬盘上写数据反而会降低性能,如果在内存中缓存数据Duration""则不要设的太长,当然具体时间长短要大家自己多尝试才知道。

2,禁止IE缓存 假如有一个页面New.aspx,在客户端第一次访问后,它会在Internet临时文件夹里有一个New.aspx,文件生成.之后,如果修改了 New.aspx的数据后再次访问该页面,发现IE并没有对这个New.aspx的数据进行更新,反而打开的是第一次访问的页面! IE自动(默认)调用了Internet临时文件夹里有一个New.aspx文件,而不是重新下载新的New.aspx,怎样能让IE自动重新下载新的New.aspx呢,就像点了刷新按钮重新加载此页面一样? 解决的第一种方法: 客户端的设置方法:Internet选项→常规→Internet临时文件中"设置"→每次访问此页时检查。 这种设置时最好同时删除临时文件,这种方法是让客户自己设置自己的浏览器,如果客户忘记了设置,那么,新的页面总是下载不到本地.这时,客户会怎样认为呢?("肯定是程序的错!") 此外,别人访问您的页面,客户端的浏览器由他们来操作,一般,这种方法不宜解决此类问题。 解决的第二种方法: 让程序自己来让页面自动下载!这种方法实际上是让页面不保存到Internet临时文件夹中,每次访问页面都会让浏览器下载页面。 只要在New.aspx代码的Page_Load事件中加上 Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);即可. 在不加这句时打开页面,Internet临时文件夹里会有一个页面文件,而加了,就会没有了。不过,像aspx文件中如果有图片文件或js文件,那还是会下载到Internet临时文件夹的。

3,JS中的ShowModalDialog()函数打开ASPX页面时禁止页面缓存 方法一:先写一个htm页面,里面嵌套一个iframe,iframe的src就是aspx页面,然后ShowModalDialog()的页面就是这个htm页面,而不是先前的aspx页面,这样就不存在缓存问题。 方法二:在aspx页面的Page_load()里面写上一句 Response.expires = -1; 意思就是让页面立即过期,这样外面也不用嵌套一个htm页面.

4,数据源缓存 如设定ObjectDataSource的CacheDuration(缓存时间:秒),EnableCaching=true。这样每隔CacheDuration指定的时间段才调用SelectMethod指定的方法来执行数据库查询,其它时候都是直接返回缓存的数据         缓存固定的时间适用于首页、文章列表页等访问频繁的页面,对于看帖页面则不适合,假设有100万个帖子,如果每个帖子都是固定缓存1小时的话,假设一小时之内有10万个帖子被看了的话,那么就要缓存十万个帖子,非常占用内存,因为“百年一看”的“坟贴”偶然被访问一次也缓存一个小时,占用内存。这时候可以采用“滑动窗口”策略,比如帖子缓存10分钟,如果10分钟之内有访问了,则缓存的实效时间修改为从被访问这一刻起的10分钟之后,以此类推。这样经常访问的帖子就可以“长期缓存”,而不经常访问的帖子也不会因为偶然的访问而长期占用缓存。设置方法,数据源:CacheExpirationPolicy="Sliding"

注:Asp.Net缓存主要分为:页面缓存、数据源缓存、数据缓存这三种主要类型。

关于asp.net页面缓存的更多相关文章

  1. ASP.NET 页面缓存

    ASP.NET 实现页面缓存页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam ...

  2. (转) ASP.NET页面缓存

    原文:http://www.cnblogs.com/Sky_KWolf/archive/2010/12/05/1897158.html 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的 ...

  3. ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

    本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam=" %> 这样整个页面 ...

  4. asp.net 页面缓存、数据缓存

    页面缓存,webform框架的aspx页面,服务器引擎生成的页面可以被缓存.

  5. location匹配禁止页面缓存

    php禁止页面缓存的办法 //设置此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可. add_header Expires: Mon, 26 Jul 1997 05:00:00 GMT ...

  6. [转]Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 — 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

  7. ASP.NET页面不被缓存

    设置ASP.NET页面不被缓存分类:ASP.NET (3531) (1) /// <summary>         /// 设置页面不被缓存         /// </summa ...

  8. ASP.NET几种清除页面缓存的方法

    在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...

  9. [Asp.net]缓存之页面缓存,控件缓存,缓存依赖

    写在前面 上篇文章介绍了缓存的基本概念及用途,另外也举了一个简单的例子,数据缓存(将一些耗费时间的数据加入到一个对象缓存集合中,以键值的方式存储.可以通过使用Cache.Insert()方法来设置缓存 ...

随机推荐

  1. 20169211《linux内核原理与分析》第七周作业

    1.教材内容学习总结 2.实验报告 3.学习总结 一.教材内容学习总结 在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享 ...

  2. yum安装(sentos7)

    之前我的yum一直出问题,我就重装了yum,这个教程是我亲自测试过,有用的. 链接:http://blog.csdn.net/iamhuanggua/article/details/60140867 ...

  3. Python之路【第十一篇】: 进程与线程理论篇

    阅读目录 一 背景知识二 进程2.1 什么是进程2.2 进程与程序的区别2.3 并发与并行2.4 同步与异步2.5 进程的创建2.6 进程的终止2.7 进程的层次结构2.8 进程的状态2.9 进程并发 ...

  4. Microsoft Office Access

    Microsoft Office Access各版本下载地址:http://www.accessoft.com/download.html 简介 access(微软发布的关联式数据库管理系统)一般指M ...

  5. vue.js-过滤器 filters使用详细示例

    什么也不说了,直接上干货: 1.首先,获取后台数据到页面,并调用过滤器 在<script>中添加 onRefreshItems (currentPage, perPage) { if (t ...

  6. 删除或修改eclipse中svn的账号密码

    由于eclipse没有自带的管理svn账号的功能,我也没有找到相关的插件,要是有朋友知道的话也可以跟我说下哦!以下是关于自己手动去删除eclipse 软件的 svn账号,以便切换项目的时候去更换svn ...

  7. 【十月のA Letter to 后辈菌】

    文化课没什么好说的,那就不说了吧(^▽^) 以下送给下两级的学弟学妹们: 马上就要NOIP了,现在自己从戏中人变成了看戏人.不管高一还是高二,我感觉只要能走到这一步就很了不起了,不管结果如何,比赛过程 ...

  8. 【UOJ #221】【NOI 2016】循环之美

    http://uoj.ac/problem/221 因为\(a\)和\(b\)不互质时,\(\frac ab=\frac{\frac a{(a,b)}}{\frac b{(a,b)}}\),所以只用求 ...

  9. hdu 1973 bfs+素数判断

    题意:给出两个四位数,现要改变第一个数中的个,十,百,千位当中的一个数使它最终变成第二个数,要求这过程中形成的数是素数,问最少的步骤题解:素数筛选+bfsSample Input31033 81791 ...

  10. bzoj 1209

    三维凸包裸题. 1.通过volume计算有向体积,判断点与面的位置关系. 2.噪声 /********************************************************* ...