【问题标题】:cache in asp.net (output)?在 asp.net 中缓存(输出)?
【发布时间】:2011-01-26 07:55:42
【问题描述】:

在我的应用程序中,我尝试实现缓存(输出),但它无法正常工作, 也就是说,每次从缓存中获取只有这是我的代码。

.

代码:

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();

【问题讨论】:

  • 每次它仅来自缓存。如果你得到解决方案,你可以建议代码
  • 我不确定我是否理解。您的意思是页面每次都来自输出缓存还是每次都从 Cache["mycache"] 获取 dtv DataView。
  • 它来自 dataview dtv ,每次 dtv 不为空
  • 那是因为你没有设置任何过期时间..见下文

标签: c# asp.net caching


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2012-08-15
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多