所以我正在浏览这个页面:http://360langstrasse.sf.tv/ 它基本上是一个 JavaScript 街景 View ,但只允许一个方向。因此,这有点像播放电影。 当快速移动时,我注意到图像有颗粒感/像素化,就像浏览 Facebook 时一样。
我想知道如何实现这个? 我尝试在标记中发送小的 base64 编码图像,然后将其绘制在 Canvas 上,直到加载“真实”图像。
这工作得很好,但让我思考这是否确实会提高性能,或者像 Facebook 这样的网站会采取不同的做法吗?
预先感谢您的帮助。
问候詹斯
编辑:或者他们只是以不同的方式显示图像?有与平常不同的渲染过程吗? 因为我没有看到任何小图像正在加载?
编辑2:下面提到的首先加载小图像的选项在这里得到了很好的描述:http://www.phpied.com/picassa-progressive-image-rendering/ 但基本上它非常简单。
最佳答案
我认为缓存(页内)低分辨率图像并获取更好的图像是实现此目标的真正方法。
另一种方法是以正常方式链接到小图像,并使用 JS 获取更大的图像 - 小图像应该加载得非常快,或者您可以订阅它们的加载事件(在 IE 中很棘手)并显示页面(删除一些加载后覆盖)。
顺便说一句,您可以将base64直接放入src
中,而不是使用canvas
<img src="data:image/png;base64,...
关于Javascript 图片加载 Facebook 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7579952/