page.Cache 的确可以做到缓存的作用 但是关闭这个页面就缓存消失了有一种解决办法就是 <%@ OutputCache Duration="600" VaryByParam = "none" %>
这种办法就也不理想 页面被静态的缓存了 根据参数不同 执行不同的脚本的功能也不能用了
总是执行第一次运行页面时的那个效果我现在有很多数据 读出来是一样的,但是各页面调用该页面根据传的参数不同 执行的脚本不同!
我主要是想把这部分数据缓存起来,并且只要有一个用户执行缓存就开始工作, 再如果有其他用户访问都是调用缓存各兄弟给个思路!!(注:不要帮我想其他的办法了,比如生成静态页面等鬼玩意!!!我一定要用这种思路解决问题!)

解决方案 »

  1.   

    页面级缓存不适合与经常变化的页面.用Cache吧
    写:
    HttpContext.Current.Cache.Insert( CacheName,DataSet, null, DateTime.Now.AddMinutes( 20 ), TimeSpan.Zero );
    读:
    DataSet = ( DataTable ) HttpContext.Current.Cache[CacheName];
    (读之前判断是否存在.不存在的话重新读数据库写入Cache)
      

  2.   

    你可以用Application缓存
    APPLICATION:全局变量,应用程序通用变量,应用程序关闭时结束,不能太过依靠他做太多变量存储,占用内容,降低性能 。
      

  3.   

    "page.Cache 的确可以做到缓存的作用 但是关闭这个页面就缓存消失了"
    在设置缓存失效的时间内,关闭页面不会导致缓存消失,而且缓存一旦建立,所有请求都是共用的。
      

  4.   

    用Cache对象 就是全局缓存
      

  5.   

    有一种解决办法就是 <%@ OutputCache Duration="600" VaryByParam = "none" %>
    ——————————————————————————————————————————
    ?先把人家的技术歪曲了再去评估?Duration、VaryByParams、VaryByControls、VaryByCustom、SqlDependency、缓存
    Api方式.......有很多。闭着眼睛“一叶障目”地评论技术的做法不好,先要学个大概,然后再评。
      

  6.   

    特别是“缓存api”方式是非常灵活的,你可以自己开发 CacheDependency 的子类来控制缓存,使用AggregateCacheDependency等,给控件的ControlCachePolicy的属性赋值。