Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET 2.0的缓存

ASP.NET 2.0的缓存2010-12-041.页面缓存:

页面输出缓存用于缓存页面呈现的所有内容(当在浏览器中选择查看源码能看 的所有内容)到内存中.

注:页面输出缓存作用于整个页面.

1.1部分页面缓存通过只缓存页面上的一个特定区域来解决这个问题.利用部 分页面缓存,可以对页面的不同区域应用

不同的缓存策略.

1.2当一个页面被缓存时,被请求时的页面内容并不会每次都重新生成.每次请 求一个页面,对应到页面的.NET类也不会

执行.对于每一个请求页面的用户,页面呈现的内容都会缓存.

((((((((((((((((((((((((((((((((((((((((((((((((

缓存的存放的位置:

页面可在多个位置缓存.而默认情况下,页面可能缓存在浏览器,任意的代理服 务器端以及Web服务器.

(注:当代理服务器端或浏览器缓存页面时,它们总是缓存整个页面.)

也可以在OutputCache的Location属性来设置缓存存放位置。 Any,Client,DownStream,None,ServerAndClient.

))))))))))))))))))))))))))))))))))))))))))))))))

1.3缓存之基于自定义函数变化的输出缓存

VaryByCustom可以给它指定一个自定义函数来决定何时生成不同的页面缓存 版本.

可以在Global.asax全局程序类文件中重写GetVaryByCustomString()方法来 创建自定义函数.

即根据GetVaryByCustomString()方法返回的string生成相应此string的页面 缓存版本.

1.4创建页面输出缓存文件依赖

即可以在一个缓存页面和硬盘上的一个文件(或一组文件)之间创建一个依 赖。当文件修改时缓存页面自动失效

并重新在下次页面请求时生成。

1.5使用编程方式设置输出缓存过期

使用Response.RemoveOutputCacheItem()方法,只接受一个“虚拟绝对”路 径,即要用Page.ResoveUrl()方法来

转换~符号为应用程序的根路径。

CodeCode

[copy to clipboard]CODE:

HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("~/实现使用编程 方式设置页面输出缓存过 期/MovieList.aspx"));

Response.Redirect("~/实现使用编程方式设置页面输出缓存过 期/MovieList.aspx");

1.6若要删除多个页面,需要创建一个所谓的键依赖(Key dependency)。一 个键依赖用于在缓存中的项目之间建立依赖。当第二个项目移除时,第一个项目 也会被自动移除。

先插入Cache.Insert("Movies", DateTime.Now);

Response.AddCacheItemDependency("Movies");

再在另一个页面Code

[copy to clipboard]CODE:

Cache.Remove("Movies");

Response.Redirect("~/实现使用编程方式设置页面输出缓存过 期/MovieListKeyDependency.aspx");

******************************************************************* **********************

上面介绍的是页面的全部缓存输出

下面介绍的是使用部分页面缓存

******************************************************************* **********************