页面缓存
时间:2010-10-10 来源:张静静
为页面添加缓存:
通过在Common文件夹中添加缓存类。然后在业务层进行调用。来使已经进过数据库操作的得到的数据存放在xml文件中,当用户再次访问数据库时可以直接从缓存文件中读取数据,增加了速度,提高了性能。
下面是缓存类:
public class CacheManage
{
private static CacheManage instance;
//通过创建实例让外部成员可以访问它类中的方法。
public static CacheManage Instance
{
get { return new CacheManage(); }
}
private Cache cache;
private double timeout=0;//定义缓存超时时间
public CacheManage()
{
cache = HostingEnvironment.Cache;//使用HostingEnvironment类,得到当前应用程序的缓存对象
timeout =Double.Parse( Config.GetTimeOut);//从Config中获得时间,它的值在webconfig中配置
}
//添加缓存
public void InsertCache(string key,object value)
{
cache.Insert(key,value);
}
//添加缓存并设置过时时间
public void InsertCache(string key, object value, string filename)
{
cache.Insert(key, value, new CacheDependency(filename), DateTime.Now.AddSeconds(timeout),TimeSpan.FromSeconds(0));
}
//删除缓存
public void DeleteCache(string key)
{
cache.Remove(key); }
//得到缓存内容
public object GetCache(string key)
{
return cache.Get(key);
}
}
注意:由于缓存一般没有修改,所以在此没有定义它的修改方法。
下面是在业务层的具体调用的例子:
public static void AddUserBorrow(string username,string userpwd,string bookname)
{
//在使用完之后直接调用dispose方法
using(IProvider provider=ManageFactory.Factory.GetProvider)
{
Data.Users du = new Base.Data.Users();
du.Username = username;
du.Userpwd = userpwd;
DAL.OpUser opu = new Base.DAL.OpUser();
opu.Insert(du,provider); Data.Books db = new Base.Data.Books();
db.Bookname = bookname;
db.Username = username;
DAL.OpBook op = new Base.DAL.OpBook();
op.Insert(db,provider);
provider.Close();
}
//防止每次添加的内容在缓存中不存在所以每当添加一条记录都先清空缓。
存
Core.Common.CacheManage.Instance.DeleteCache("users");
}
public static string Select()
{
string str = "";
//先得到缓存的内容。
object obj = Core.Common.CacheManage.Instance.GetCache("users");
if (obj == null)
{
using (IProvider provider = ManageFactory.Factory.GetProvider)
{
DAL.OpUser ou = new Base.DAL.OpUser();
List<Data.Users> dus= ou.Select(provider);
string filename = HttpContext.Current.Server.MapPath("xmlcache.xml");
Core.Common.CacheManage.Instance.InsertCache("users",dus,filename);
obj = dus;//为缓存赋值。
}
}
//显示缓存中的内容。
List<Data.Users> dulist=obj as List<Data.Users>;
foreach (Data.Users du in dulist)
{
str += du.Username + "<br/>";
}
return str; }
通过在Common文件夹中添加缓存类。然后在业务层进行调用。来使已经进过数据库操作的得到的数据存放在xml文件中,当用户再次访问数据库时可以直接从缓存文件中读取数据,增加了速度,提高了性能。
下面是缓存类:
public class CacheManage
{
private static CacheManage instance;
//通过创建实例让外部成员可以访问它类中的方法。
public static CacheManage Instance
{
get { return new CacheManage(); }
}
private Cache cache;
private double timeout=0;//定义缓存超时时间
public CacheManage()
{
cache = HostingEnvironment.Cache;//使用HostingEnvironment类,得到当前应用程序的缓存对象
timeout =Double.Parse( Config.GetTimeOut);//从Config中获得时间,它的值在webconfig中配置
}
//添加缓存
public void InsertCache(string key,object value)
{
cache.Insert(key,value);
}
//添加缓存并设置过时时间
public void InsertCache(string key, object value, string filename)
{
cache.Insert(key, value, new CacheDependency(filename), DateTime.Now.AddSeconds(timeout),TimeSpan.FromSeconds(0));
}
//删除缓存
public void DeleteCache(string key)
{
cache.Remove(key); }
//得到缓存内容
public object GetCache(string key)
{
return cache.Get(key);
}
}
注意:由于缓存一般没有修改,所以在此没有定义它的修改方法。
下面是在业务层的具体调用的例子:
public static void AddUserBorrow(string username,string userpwd,string bookname)
{
//在使用完之后直接调用dispose方法
using(IProvider provider=ManageFactory.Factory.GetProvider)
{
Data.Users du = new Base.Data.Users();
du.Username = username;
du.Userpwd = userpwd;
DAL.OpUser opu = new Base.DAL.OpUser();
opu.Insert(du,provider); Data.Books db = new Base.Data.Books();
db.Bookname = bookname;
db.Username = username;
DAL.OpBook op = new Base.DAL.OpBook();
op.Insert(db,provider);
provider.Close();
}
//防止每次添加的内容在缓存中不存在所以每当添加一条记录都先清空缓。
存
Core.Common.CacheManage.Instance.DeleteCache("users");
}
public static string Select()
{
string str = "";
//先得到缓存的内容。
object obj = Core.Common.CacheManage.Instance.GetCache("users");
if (obj == null)
{
using (IProvider provider = ManageFactory.Factory.GetProvider)
{
DAL.OpUser ou = new Base.DAL.OpUser();
List<Data.Users> dus= ou.Select(provider);
string filename = HttpContext.Current.Server.MapPath("xmlcache.xml");
Core.Common.CacheManage.Instance.InsertCache("users",dus,filename);
obj = dus;//为缓存赋值。
}
}
//显示缓存中的内容。
List<Data.Users> dulist=obj as List<Data.Users>;
foreach (Data.Users du in dulist)
{
str += du.Username + "<br/>";
}
return str; }
相关阅读 更多 +