第一,页面生成后都会生成一个缓存。。服务器会生成一个缓存,客户请求页面的时候是不是先从缓存里面取出页面,并不是每次都连接数据库取数据
第二、在page的生命周期里有一个public Cache Cache ,这个到底做了什么,是不是在这里就去页面取得了缓存,也就是后面进行的控件的一系列操作都是从这里拿到的?
第三、可不可以通过url传给服务器里面一个cache?谢谢大家了

解决方案 »

  1.   

    1.是的
    2.获取与该页驻留的应用程序关联的Cache对象。
    3.你可以传一个Cache的 key过去,然后去获取Cache
      

  2.   

    第三个能举下例子吗?具体怎么传?
    还有第二个如果在这一步我修改了原来的cache是不是网站页面就不会显示了?
      

  3.   

    第一个,如果是服务器端,页面缓存或者局部缓存,是从缓存取得html代码片段第二个,生命周期里面事件 ResolveRequestCache PostResolveRequestCache 封装检查是否能利用以前缓存的输出页面处理请求的过程。第三个 VaryByParam=“id”
      

  4.   

    直接Cache[keyname] = keyvalue  可以么?
      

  5.   

    用法感觉和cookie 和session差不多
      

  6.   

    URL?  是说直接修改URL修改cache?
    貌似不行吧  
      

  7.   

    URL?  是说直接修改URL修改cache?
    貌似不行吧  LZ有兴趣可是了解下 localStorage  谷歌下  也是个不错的存储方法
      

  8.   

    服务器有特定处理URL参数即可
      

  9.   

    缓存的是将数据存放在内存里面你可以通过给每个缓存设置一个唯一的key值。当你需要什么数据,输入对应的key值就行了,当然前提是你缓存的数据时间没有过期
      

  10.   

    这个输入对应的数据是指在url中输入吗?能写个例子吗?
      

  11.   

    每一个KEY值是你自己定义的,你可以通过在url中写入key值作为参数在后台接收下就行了呀
    首先:当缓存失效的时候,页面是不会有去缓存数据的,所以第一步要做的就是去判断缓存是否存在。。不存在的话就去写入缓存。
    public static void GetOrInsertCache(string key, object value, double cacheTime)
            {
               //判断key值对应的缓存存在否
                if (HttpRuntime.Cache.Get(key) == null)
                {
                   //写入缓存,唯一标识key值,缓存内容value,缓存失效时间cachetime(我这里用的是小时)
                   HttpRuntime.Cache.Insert(key, value, null, DateTime.Now.AddHours(cacheTime), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.Default, null);
                }
                else
                {  
                   //得到缓存数据
                   string GetCacheValue=HttpRuntime.Cache.Get(key);
                }
            }
      

  12.   

    上面说的应该都对,但楼主估计一时看不明白,我简单易懂的说下(只说楼主的第三个问题):
                首先 Cache["缓存的key"]=返回一个要缓存的信息(如类什么)
    假如我网站访问www.baidu.com/?Cache=123;也就是把缓存的key值(123)放在url后面作为参数
    我后置代码(.cs文件)获取这个缓存key值也就是123
                
                if(Cache["123"]==null){
                    //如果第一次加载页面说明没有缓存
                    Cache["123"]=从数据库查询要缓存的内容;
                }else{
                    //在此访问已经存在存在缓存
                    某个类,或字符串=Cache["123"];//你看这样就没有查找数据库,而是从缓存里调用
                }
                楼主明白了不,不明白我也无能为力了。