我有一个数据库,它将图像存储为 Base64 字符串。我的任务是用这些图像创建一个画廊。作为我选择的武器,我尝试使用fancybox
并将图像加载为<img src="data:image/jpg;base64, MY_BASE64"/>
. 它有效,但对性能有巨大影响。我必须等待〜2s,直到图像加载。有没有更好的方法来处理这个问题?
问问题
720 次
1 回答
3
我建议您创建一个通用处理程序 (ashx) 来呈现您的图像。我假设您将其作为实际二进制文件存储在数据库中,因为没有理由将其存储为 base64。
制作一个通用处理程序来输出图像有以下好处:
- 客户端可以异步加载这些图像(提供非常好的感知性能)
- 客户端可以缓存图片(ETags 和 Last-Modified)
- 互联网服务提供商和代理可以缓存图像
- 传输的数据更少(发送原始二进制文件比发送 base64 文本大约小 33%)
- 更好的浏览器支持(所有浏览器都支持使用 base64 吗?)
- 客户端只会下载正在查看的图像(fancybox)
于 2013-09-11T13:42:42.673 回答