缓存在asp.net(输出)?

时间:2010-03-11 11:01:47

标签: c# asp.net caching

在我的应用程序中我试图实现缓存(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();

2 个答案:

答案 0 :(得分:2)

OutputCachePage.Cache没有任何关系。 OutputCache缓存页面生成的html并将其返回给浏览器,而无需再次运行代码(按当前配置为10秒)。 Page.Cache提供了一种存储应用程序范围数据的机制。一旦将某些内容添加到该缓存中,它将一直存在,直到您下次重新启动网站时(除非明确删除)。

答案 1 :(得分:1)

是的,@ klausbyskov是对的。尝试使用Cache.Insert()方法重载以及expiration参数来设置数据缓存元素的超时。