“data:image / png; base64,b64Encoderpngstring”设置html img的src时VS url-to-folder

时间:2013-05-20 03:55:28

标签: javascript html image

我使用 pywebkit html5 来开发桌面地图服务器

将地图图块存储在 sqlite数据库中。

所以当我设置html img的src时,我有两个选择。

  1. 一个是从数据库读取图像, b64encode ,然后用“ data:image / png; base64,b64Encoder-string ”设置img的src。 / p>

  2. 另一个是从数据库中读取图像并将其保存在磁盘上,然后将 url设置为img的src到本地文件夹

  3. 我的问题是哪种方式更好

    我最担心的是渲染速度。哪一个更快供浏览器呈现图片。

2 个答案:

答案 0 :(得分:5)

<img src="http://mysite.com/images/myimage.jpg" />这实际上是http URI计划, 虽然<img src="data:image/png;base64,efT....." />data URI,但这种方式图像在HTML中内联,并且没有额外的HTTP请求,但在大多数情况下,嵌入的图像不能在不同的页面加载之间缓存,因此解决方案实际上是通过你的方式...什么对你更好,方便忽略伊恩建议:)

现在转到浏览器兼容性 -

数据URI在IE 5-7中不起作用,但在IE 8中受支持。Source

页面尺寸

base64编码也会增加页面大小,这是另一回事。

答案 1 :(得分:1)

这在很大程度上取决于应用程序的运行方式,以及运行环境等其他细节。

将图像保存到磁盘的优点是,您可以避免每次需要时重新编码图像(可以通过在DB中添加具有该计算的base-64字符串的列来避免这种情况。)

要点: 1 - 使用第一个选项,但将其缓存为数据库或服务器变量。 2 - 使用第二个选项并缓存文件名。

但接下来的问题是你的二级存储有多快。您可能希望避免使用HD,即使使用缓存,因为它很慢或者您的二进制存储空间有限(并且有更多的数据库存储空间)。

我建议您添加有关您担心的内容的具体信息。