c# - 将 Base64 显示为图像的快速性能方法

标签 c# asp.net

我有一个数据库,它将图像存储为 Base64 字符串。 我的任务是用这些图像创建一个画廊。作为我选择的武器,我尝试使用 fancybox我将图像加载为 <img src="data:image/jpg;base64, MY_BASE64"/> 。它有效,但对性能有巨大影响。我必须等待大约 2 秒才能加载图像。有没有更好的方法来处理这个问题?

最佳答案

我建议您创建一个通用处理程序(ashx)来渲染图像。我假设您将其作为实际的二进制文件存储在数据库中,因为没有理由将其存储为 base64。

制作通用处理程序来输出图像具有以下好处:

  • 客户端可以异步加载这些图像(提供非常好的感知性能)
  • 客户端可以缓存图像(ETag 和 Last-Modified)
  • 互联网服务提供商和代理可以缓存图像
  • 传输的数据更少(发送原始二进制文件比发送 Base64 文本大约小 33%)
  • 更好的浏览器支持(所有浏览器都支持使用 base64 吗?)
  • 客户端只会下载正在查看的图像 (fancybox)

关于c# - 将 Base64 显示为图像的快速性能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742423/

相关文章:

c# - 在 .NET Core 中获取类的公共(public)属性

c# - 调用所有处理程序后如何提交 UoW

javascript - 文本框轮廓被覆盖

asp.net - 生产服务器中 ASP.NET 网站的性能增强器

javascript - dropdownlistfor 无法使用 jquery 从 Controller 更改为选定值

c# - 如何从 Azure 自动化中的 Runbook 调用 DLL 中的 C# 方法?

c# - 从文本文件中删除第一行并将其余单词放入与空格分隔的数组中,

c# - 这是我为控件设置事件的最佳方式吗?

asp.net - 在 vb.net 中创建进度条

c# - 用户控件不保留私有(private)值,返回Page_Load中设置的值