我基本上有一个预订引擎单位结果页面must显示 40 个单元,每个单元有 1 个大图像的第一个缩略图和 X 个伴随的缩略图。
我一直在使用 jquery 延迟加载插件,但它不够彻底(我在 DOM Ready 上调用它),而且它在 IE 中不起作用(50% 的客户端使用 IE,所以这是一个大问题) 。
我认为我真正需要做的并不是真正吐出图像,而是一个假元素,例如跨度,并可能修改我的代码,以便如果用户查看跨度,将其渲染到图像元素中。
<span src="/images/foo.gif">
预订引擎依赖于 JS,所以我想我可能被迫只依赖 ajax 化所有缩略图并在窗口滚动上设置事件处理程序等,以便页面“可用”并平均加载( 2-3秒而不是高速 DSL/电缆上的 5-30 秒)。
我很感激任何例子或想法。
可能对解决此问题有用的相关链接/发现:
#1: http://github.com/silentmatt/jquery_lazyload http://github.com/silentmatt/jquery_lazyload
jquery 延迟加载的一个分支,似乎解决了 IE 加载问题并添加了对容器的支持。
#2:youtube.com 将某些视频的 src 设置为 1x1 透明 gif,并在大约前 10 个结果后延迟加载。
Updates
#1:我们决定制作一个脚本来生成缩略图并递归生成它们。我实施了它们。 570 个缩略图不再是每张 60-120KB,而是每张 2 KB。加载速度有点快,但仍然很慢,因为有 570 个并发请求,即使惰性加载器插件已就位,我也不确定它的应用速度是否足够快(即使在图像完全加载之前在 DOM 上准备好)。虽然取得了一些进展。
我正在考虑在前 10 个单元之后生成 1x1 像素的 gif,然后延迟加载它们。不过还是得摸索出一套技术。