在我的应用程序中我试图实现缓存(ouput),但它不能正常工作, 就是每次从缓存中获取这只是我的代码。
<%@ OutputCache VaryByParam =“none” Location =“Client”Duration =“10”%>。
代码:
protected void btn_Click(object sender, EventArgs e)
{
DataView dtv;
dtv = (DataView)Cache["mycache"];
if(dtv ==null )
{
string sqry="select * from scrap";
da=new SqlDataAdapter (sqry,con);
ds=new DataSet();
da.Fill (ds);
dtv=new DataView (ds.Tables[0]);
Cache["mycache"]=dtv ;
Response.Write ("<script> alert ('from code')</script>");
}
else
{
Response.Write ("<script> alert ('from cache')</script>");
}
grd1 .DataSource =dtv;
grd1 .DataBind();
答案 0 :(得分:2)
OutputCache和Page.Cache
没有任何关系。 OutputCache缓存页面生成的html并将其返回给浏览器,而无需再次运行代码(按当前配置为10秒)。 Page.Cache
提供了一种存储应用程序范围数据的机制。一旦将某些内容添加到该缓存中,它将一直存在,直到您下次重新启动网站时(除非明确删除)。
答案 1 :(得分:1)
是的,@ klausbyskov是对的。尝试使用Cache.Insert()方法重载以及expiration参数来设置数据缓存元素的超时。