我们正在用 PHP 生成我们的页面,并希望在浏览器中尽快加载生成的页面。在生成页面(即.html
页面)时,我们意识到我们有两个选择:
带有数据 URL 图像的页面
<html>
<head></head>
<body>
<img src="data:image/png;base64,blahblahblah1" />
<img src="data:image/png;base64,blahblahblah2" />
<img src="data:image/png;base64,blahblahblah3" />
</body>
</html>
带有“正常”图像的页面
<html>
<head></head>
<body>
<img src="/images/image1.png" />
<img src="/images/image2.png" />
<img src="/images/image3.png" />
</body>
</html>
DataURL 的优缺点:
优点:
从浏览器到服务器的行程更少(只有一次行程) - 鉴于生成的性质,并且需要维护它和 CSS,使用 sprite 在这个项目上效果不佳
较小图像上的带宽使用较少
在 HTTPS 中更快
缺点:
由于 base64 编码,图像尺寸会更大(大约大 37%)
在 IE7 和 IE8 中不起作用,大小限制为 32KB
“一趟”真的会有很大的不同吗?用户会注意到吗?