【转】.NET页面缓存的实现方法和原理
2011-08-30 22:44
363 查看
.NET页面缓存的实现方法和原理,页面输出缓存作为最简单的缓存形式,输出缓存只是在内存中保留为响应请
求而发送的 HTML
的副本,其后再有请求时将提供缓存的输出,直到缓存到期。合理运用缓存,网站性能有可能得到很大的提高,取决于需要多少开销来创建原始页面输出-
发送,缓存的输出总是很快,并且比较稳定。.NET页面缓存的实现方法和原理的简单介绍如下:
一,ASPX页面缓存
页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %>
Duration="60" 的意思是指定缓存的时间为60秒,可根据情况自已设定VaryByParam="none" 的意思是设定无参数缓存(有参数的缓存下面会讲到)
.NET页面缓存的实现方法和原理,这两个参数是必须的,不能缺省。另外还有一个重要的参数DiskCacheable="true|false" 意思是要不要把缓存放到硬盘上,如果设为false则缓存数据会放到内存中。
这里需要注意一下,如果页面数据很小的话可以把缓存数据放到内存中,如果数据较大最好放到硬盘上,否则会占用大量内存影响服务器运行,如果数据缓存到硬盘
上的话,记得要把Duration=""的值设的大一些如Duration="3600",如果设的太小,服务器会过于频繁的在硬盘上写数据反而会降低性
能,如果在内存中缓存数据Duration""则不要设的太长,当然具体时间长短要大家自己多尝试才知道。
二,禁止IE缓存
假如有一个页面New.aspx,在客户端第一次访问后,它会在Internet临时文件夹里有一个
New.aspx,文件生成.之后,如果修改了New.aspx的数据后再次访问该页面,发现IE并没有对这个New.aspx的数据进行更新,反而打开
的是第一次访问的页面!
.NET页面缓存的实现方法和原理,IE自动(默认)调用了Internet临时文件夹里有一个New.aspx文件,而不是重新下载新的New.aspx,怎样能让IE自动重新下载新的New.aspx呢,就像点了刷新按钮重新加载此页面一样
解决的第一种方法:
客户端的设置方法:Internet选项→常规→Internet临时文件中"设置"→每次访问此页时检查。
这种设置时最好同时删除临时文件,这种方法是让客户自己设置自己的浏览器,如果客户忘记了设置,那么,新的页面总是下载不到本地.这时,客户会怎样认为呢?("肯定是程序的错!")此外,别人访问您的页面,客户端的浏览器由他们来操作,一般,这种方法不宜解决此类问题。
解决的第二种方法:
让程序自己来让页面自动下载!这种方法实际上是让页面不保存到Internet临时文件夹中,每次访问页面都会让浏览器下载页面。.NET页面缓存的实现方法和原理,只要在New.aspx代码的Page_Load事件中加上
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);即可.
在不加这句时打开页面,Internet临时文件夹里会有一个页面文件,而加了,就会没有了。不过,像aspx文件中如果有图片文件或js文件,那还是会下载到Internet临时文件夹的。
三,JS中的ShowModalDialog()函数打开ASPX页面时禁止页面缓存
.NET页面缓存的实现方法和原理,方法一:先写一个htm页面,里面嵌套一个iframe,iframe的src就是aspx页面,然后ShowModalDialog()的页面就是这个htm页面,而不是先前的aspx页面,这样就不存在缓存问题。
方法二:在aspx页面的Page_load()里面写上一句 Response.expires = -1; 意思就是让页面立即过期,这样外面也不用嵌套一个htm页面。
.NET页面缓存的实现方法和原理介绍如上,ASP.NET的缓存机制可以使WEB应用程序将频繁访问的数
据,以及需要耗费大量系统资源及时间来创建的数据在首次运行程序时存储。当页面下次访问时,程序不需要重新耗费资源创建数据,直接从存储中取出数据即可,
从而大大提高了程序整体性能。
原文地址:
http://www.lx9d.com/page/20110102180221.html
求而发送的 HTML
的副本,其后再有请求时将提供缓存的输出,直到缓存到期。合理运用缓存,网站性能有可能得到很大的提高,取决于需要多少开销来创建原始页面输出-
发送,缓存的输出总是很快,并且比较稳定。.NET页面缓存的实现方法和原理的简单介绍如下:
一,ASPX页面缓存
页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %>
Duration="60" 的意思是指定缓存的时间为60秒,可根据情况自已设定VaryByParam="none" 的意思是设定无参数缓存(有参数的缓存下面会讲到)
.NET页面缓存的实现方法和原理,这两个参数是必须的,不能缺省。另外还有一个重要的参数DiskCacheable="true|false" 意思是要不要把缓存放到硬盘上,如果设为false则缓存数据会放到内存中。
这里需要注意一下,如果页面数据很小的话可以把缓存数据放到内存中,如果数据较大最好放到硬盘上,否则会占用大量内存影响服务器运行,如果数据缓存到硬盘
上的话,记得要把Duration=""的值设的大一些如Duration="3600",如果设的太小,服务器会过于频繁的在硬盘上写数据反而会降低性
能,如果在内存中缓存数据Duration""则不要设的太长,当然具体时间长短要大家自己多尝试才知道。
二,禁止IE缓存
假如有一个页面New.aspx,在客户端第一次访问后,它会在Internet临时文件夹里有一个
New.aspx,文件生成.之后,如果修改了New.aspx的数据后再次访问该页面,发现IE并没有对这个New.aspx的数据进行更新,反而打开
的是第一次访问的页面!
.NET页面缓存的实现方法和原理,IE自动(默认)调用了Internet临时文件夹里有一个New.aspx文件,而不是重新下载新的New.aspx,怎样能让IE自动重新下载新的New.aspx呢,就像点了刷新按钮重新加载此页面一样
解决的第一种方法:
客户端的设置方法:Internet选项→常规→Internet临时文件中"设置"→每次访问此页时检查。
这种设置时最好同时删除临时文件,这种方法是让客户自己设置自己的浏览器,如果客户忘记了设置,那么,新的页面总是下载不到本地.这时,客户会怎样认为呢?("肯定是程序的错!")此外,别人访问您的页面,客户端的浏览器由他们来操作,一般,这种方法不宜解决此类问题。
解决的第二种方法:
让程序自己来让页面自动下载!这种方法实际上是让页面不保存到Internet临时文件夹中,每次访问页面都会让浏览器下载页面。.NET页面缓存的实现方法和原理,只要在New.aspx代码的Page_Load事件中加上
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);即可.
在不加这句时打开页面,Internet临时文件夹里会有一个页面文件,而加了,就会没有了。不过,像aspx文件中如果有图片文件或js文件,那还是会下载到Internet临时文件夹的。
三,JS中的ShowModalDialog()函数打开ASPX页面时禁止页面缓存
.NET页面缓存的实现方法和原理,方法一:先写一个htm页面,里面嵌套一个iframe,iframe的src就是aspx页面,然后ShowModalDialog()的页面就是这个htm页面,而不是先前的aspx页面,这样就不存在缓存问题。
方法二:在aspx页面的Page_load()里面写上一句 Response.expires = -1; 意思就是让页面立即过期,这样外面也不用嵌套一个htm页面。
.NET页面缓存的实现方法和原理介绍如上,ASP.NET的缓存机制可以使WEB应用程序将频繁访问的数
据,以及需要耗费大量系统资源及时间来创建的数据在首次运行程序时存储。当页面下次访问时,程序不需要重新耗费资源创建数据,直接从存储中取出数据即可,
从而大大提高了程序整体性能。
原文地址:
http://www.lx9d.com/page/20110102180221.html
相关文章推荐
- ASP.net Substitution 页面缓存而部分不缓存的实现方法
- Asp.net使用异步缓存方法实现页面及时更新
- ASP.net Substitution 页面缓存而部分不缓存的实现方法
- ASP.net Substitution 页面缓存而部分不缓存的实现方法
- Asp.Net 生成验证码,清空缓存,分页方法,生成图片水印,防注入过滤,页面过滤HTML,文字转图片
- ASP.NET几种清除页面缓存的方法
- asp.net页面触发事件panel滚动条高度不变的实现方法
- ASP.NET页面刷新的实现方法
- asp.net 用继承方法实现页面判断session
- ASP.NET实现页面传值的几种方法小结
- ASP.NET返回上一页面的实现方法
- asp.net中Post表单保存页面状态并输出源码的实现方法
- 先看看ASP.NET页面刷新的实现方法:
- ASP.NET实现页面传值的几种方法
- ASP.NET页面刷新的实现方法(Zt)
- ASP.NET 页面刷新的实现方法(包括html,js)
- ASP.NET实现页面间值传递的几种方法介绍
- ASP.NET清除页面缓存的方法
- ASP.Net 更新页面输出缓存的几种方法(包括用户控件,iframe,页面缓存等)
- Asp.net禁用页面缓存的方法总结