c# - 如何缓存处理程序图像?

标签 c# asp.net sql handler

我有 blob 数据的大约 85000 张图像,我从处理程序生成它并作为图像数据类型存储到数据库中,现在当我将它渲染到网页中时,它显然工作得非常慢,所以我想为这个可能找到一些中间解决方案 < strong>cache 我认为这对我来说是最好的解决方案所以任何人都可以给我一些关于这个的想法我的代码看起来像这样

public void ProcessRequest(HttpContext context)
    {

context.Response.OutputStream.Write(buffer, 0, byteSeq);
                byteSeq = strm.Read(buffer, 0, 8192);
}

和图片

     <img  src='<%# "handler/product?"+Email.Encryptdes(DataBinder.Eval(Container.DataItem,"product_id").ToString()) %>'/>

现在怎么办我看不到我的页面在 30 秒加载 我应该为图像选择文件夹选项吗?

最佳答案

您可以在处理程序本身中设置缓存,如下所示

context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(10));

因此,如果浏览器请求相同的数据,它会被缓存 10 分钟。

为了进一步改进,您可以将图像保存在本地文件夹中,然后设置路径。

一些有用的链接

  1. How to use output caching on .ashx handler
  2. Cache an object in a .ashx handler
  3. How to server-side cache ASP.NET custom HttpHandler response

关于c# - 如何缓存处理程序图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969516/

相关文章:

asp.net - 需要一个 Web 表单示例,编辑带有子项的父实体对象

c# - 声明将由许多 WebMethod 函数使用的单个静态变量

sql - 如何在现有表中执行相当于 'Tsql select into' 的操作

sql - 在查询期间将时间戳转换为可读日期

c# - 将 String 转换为 DateTime 时出错。 "String was not recognized as a valid DateTime."

c# - Entity Framework 代码优先 : Custom Mapping Using Attribute?

javascript - 如何使用 JavaScript 在单击另一个按钮时隐藏/显示按钮

mysql - 加入两个表而不丢失相关值

c# - 根据固定的类型列表多次调用泛型方法

c# - 根据文件夹结构对 url 字符串列表进行分组