减少1000张图像的HTTP请求?
题
我知道这个问题听起来可能有点疯狂,但是我很难想出一个明智的主意:
想象一下,您在单个HTML页面上有1000个缩略图图像。
图像大小约为5-10 kb。
有没有办法将所有图像加载到一个请求中?以某种方式将所有图像划入一个文件中…
还是您对该主题还有其他建议?
我已经知道的其他选项:
CSS精灵
懒负荷
设置到期的标题
通过不同的主机名下载图像
解决方案
考虑到您的情况,我只能想到另外两个选择:
- 使用“数据:”协议,然后回声将缩略图的基本64编码版本直接到HTML页面中。我不建议这样做,因为您无法在用户浏览器上缓存这些图像。
- 使用HTML5的Web存储将所有图像存储为记录,并使用base64编码的图像数据存储为列中的blobs。数据库下载到用户计算机后,请使用JavaScript循环浏览所有记录,并使用JQuery之类的内容在页面上创建缩略图。使用此选项,您需要等到整个数据库在最终用户浏览器上下载完成,他们将需要一个相当现代的浏览器。
我认为您最好的选择是懒惰加载,带有到期标头的缓存以及从多个主机名中提供图像的组合。
如果图像可以通过逻辑分组,则CSS Sprites除了上述所有内容外,还可以对您有用。例如,如果您的缩略图是在特定一天上传的图像……您可能可以为每天创建一个文件,然后可以在用户浏览器上缓存。
不隶属于 StackOverflow