最佳答案
我正在查看一个greasemonkey用户脚本的源代码,并注意到他们的css中有以下内容:
.even { background: #fff url(data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7) repeat-x bottom}
我可以理解greasemonkey脚本想要在源代码中捆绑任何东西,而不是将其托管在服务器上,这是足够明显的。但由于我以前没有见过这种技术,我考虑了它的使用,它似乎很有吸引力,原因有很多:
考虑到IE6(例如)在缓存背景图像方面存在问题,这似乎不是最糟糕的主意……
那么,这是一个好还是坏的做法,为什么不使用它,你会使用什么工具来base64编码图像?
更新-测试结果
用图像测试:http://fragged.org/dev/map-shot.jpg - 133.6Kb
专用CSS文件: http://fragged.org/dev/base64.css - 178.1 kb < /强> < / p >
GZIP编码服务器端
结果大小发送给客户端(YSLOW 59.3 kb
保存发送到客户端浏览器的数据:74.3Kb
很好,但我想对于较小的图像来说,它就不那么有用了。
更新:Bryan McQuade,谷歌的软件工程师,致力于PageSpeed,在2013年ChromeDevSummit上表示,CSS中的data:uris被认为是一种渲染阻塞反模式,用于在他的演讲
#perfmatters: Instant mobile web apps
中交付关键/最小的CSS。看到http://developer.chrome.com/devsummit/sessions并记住它- 实际的幻灯片