日期:2014-05-18  浏览次数:20421 次

页面类、缓存疑问

闲话少叙,在.NET开发环境下,现假设有A页面,自然也就有一个页面类:A类。A类需要取地区信息表的数据,在A类中通过缓存操作类的F方法获取该数据集,在缓存操作类的F方法中,首先判断缓存中有没有该数据集,若有则取出并返回给A类,若没有则从数据库中取得该数据集存入缓存并返回给A类。我的疑问有二:其一,若有甲、乙、丙三个用户同时访问A页面,这是不是意味着A类将实例化三次,生成三个对象呢?其二,甲用户的A类对象首先取数据集,调缓存操作类的F方法,经判断缓存中没有,所以这时从数据库中取得数据集存入缓存并返回给甲用户的A类对象,接下来乙或丙的A类对象也开始取数据集这时是不是就直接可以从缓存中取了呢?最后还有一点,HttpRuntime类的Cache属性跟缓存是个什么关系呢?谢谢解答。


------解决方案--------------------
问题一:是实例化三次。
问题二:你所谓的缓存数据集用的是session缓存还是cache缓存。
session缓存的话 甲、乙、丙 各自用各自的。
cache缓存的话,大家共享一块“蛋糕”。
------解决方案--------------------
cache有期限的。
------解决方案--------------------
Catch主要就是为了减少数据库交互次数,A类其他对象都可以取Catch的数据
------解决方案--------------------
变动不大的东西一般才存入Catch