当前位置: 代码迷 >> ASP.NET >> 关于网页数据缓存运用机制(cache.insert,cache.update)
  详细解决方案

关于网页数据缓存运用机制(cache.insert,cache.update)

热度:7253   发布时间:2013-02-25 00:00:00.0
关于网页数据缓存使用机制(cache.insert,cache.update)
问题1:如果已经存在cache(“temp”),现在要使用cache.insert("temp",....),我想问的是原来的
cache("temp")被覆盖;还是什么都不做?里面的机制到底是怎样?

问题2:如果cache.update(“temp1”)本身不存在,如果现在使用cache.update(“temp1”),现在cache("temp1")
是否被创建?里面的机制到底是怎样运作的?

问题3:缓存有客户端的(client),有服务端的(server),我想问的是当asp.net中的page ,unload事件发生时候,
如果清除缓存,能否同时清除client和server端的缓存?有没有这部分说明,有的给个连接的网页地址.



小虾刚学,希望各位大虾不吝赐教...

------解决方案--------------------------------------------------------
引用http://topic.csdn.net/u/20081030/17/193a101e-8e71-4c23-b24d-3068e3a6cbda
服务器缓存是把数据放在服务器的内存中,客户端缓存则是把数据保存在浏览器里。 

服务器上某一页面访问量较大,且是经常变动的话,用服务器缓存比较合适,这样访止同一时间造上数据库连接次数过多的情况。 

如果服务器上某一页面访问量较大,但是内容一直不变,或者非常长时间才变动的话,可以用客户端缓存,也可以用服务器端缓存。 

服务器缓存不要滥用,要根据具体情况来使用,不然不但起不到提高效率的作用,反而比不使用缓存更糟糕。 
客户端缓存滥用会导致用户长时间浏览的一直是固定不变的页面 

具体的用法 
服务器端: 
ASP.NET 有三种可由 Web 应用程序使用的缓存: 
1.输出缓存:缓存请求所生成的动态响应. 
2.片断缓存:缓存请求所生成的相应的各部分. 
3.数据缓存:以编程方式混存任意对象. 

输出缓存:(缓存绝对过期) 
通过缓存从动态页生成的内容来提高请求/响应的吞吐量.默认情况下启用输出缓存, 
但不缓存来自任何响应的输出,除非采取显式操作使该响应成为可缓存的. 
若要使相应满足输出缓存的条件,它必须具有有效的过期/有效性策略和公共的缓存可 
见性.启用输出缓存后,当发出对页的第一个GET请求时创建一个输出缓存项。随后的GET或 
HEAD请求由该输出缓存项服务,直到该缓存请求过期。 
下面的指令在响应时激活输出缓存: 
<%@ OutputCache Duration="60" VaryByParam="none"%> 

页片断缓存:(单独缓存) 
<%@ OutputCache Duration="120" VaryByParam="id1;id2"%> 
VaryByParam属性功能非常强大,允许用户控件作者指示asp.net在服务器上缓存/存储 
输出缓存区域的多个实例。 
片断缓存还支持VaryByControl属性。VaryByParam属性基于使用POST或GET发送的名称 
/值对改变缓存结果,而VaryByControl属性则通过用户控件中的控件改变缓存片断。 

页数据缓存: 
把数据项放入缓存: 
Cache["mykey"]=myValue; 
从缓存中检索数据: 
myValue=Cache["mykey"]; 
if(myCache !=null) 

DisplayData(myValue); 



客户端缓存: 

<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
------解决方案--------------------------------------------------------
顶!LZ
------解决方案--------------------------------------------------------
回帖是一种美德!每天回帖即可获得 10 分可用分!
------解决方案--------------------------------------------------------
问题1:如果已经存在cache(“temp”),现在要使用cache.insert("temp",....),我想问的是原来的 
cache("temp")被覆盖;还是什么都不做?里面的机制到底是怎样? 
**********如果已经存在 ,再插入,会报错。如果没有可以插入,有了不可以直接插入;

问题2:如果cache.update(“temp1”)本身不存在,如果现在使用cache.update(“temp1”),现在cache("temp1") 
是否被创建?里面的机制到底是怎样运作的? 
**********如果有可以update,没有不可以直接update

问题3:缓存有客户端的(client),有服务端的(server),我想问的是当asp.net中的page ,unload事件发生时候, 
如果清除缓存,能否同时清除client和server端的缓存?有没有这部分说明,有的给个连接的网页地址. 
**********可以清除client和server端的缓存,可以在代码执行,客户端的和服务器端的要分别执行。
------解决方案--------------------------------------------------------
学习了
------解决方案--------------------------------------------------------
不存在cache值,更新和保存会出错。
http://www.cnblogs.com/aierong/archive/2004/07/15/24653
  相关解决方案