将base64显示为图像的快速性能方法

时间:2013-09-11 13:22:42

标签: c# asp.net

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

1 个答案:

答案 0 :(得分:3)

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

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

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