代码之家  ›  专栏  ›  技术社区  ›  Luke

ASP.netmvc中的不可见缓存

  •  1
  • Luke  · 技术社区  · 14 年前

    一种选择是使用OutputCache参数来缓存图像,但我不喜欢强迫一些不幸的用户等待很长时间。我宁愿把图像写在后台的文件中,并提供静态html。

    最好的方法是什么?我正在考虑创建一个特殊的url来触发将图像写入磁盘的刷新,并设置一个调度任务来命中刷新url。有更好的主意吗?

    似乎可以将memcached与ASP.Net结合使用,设置起来有多难?在这种情况下(内部工具)似乎有些过分,我已经让基于磁盘的版本工作了,但我很好奇。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Andrew    14 年前

    我们做了类似的事情,尽管我们只是预先计算文件/图像并将它们存储在HttpRuntime.Cache中。这样我们的视图仍然可以按原样生成,但它们通常从缓存数据中提取,而不是动态生成。

    如果缓存数据不可用,我们可以使用getter函数来生成它们:

    public static GetGraph(int id)
    {
        if (HttpRuntime.Cache["image_"+id] == null)
            HttpRuntime.Cache["image_"+id] = _imageGen.GenerateGraph(id);
        return HttpRuntime.Cache["image_"+id];
    }