【发布时间】:2019-01-11 12:51:21
【问题描述】:
对于符合 Google Accelerated Mobile Pages (AMP) 项目的页面延迟加载图像的方法是什么?
据我了解,延迟加载是指在呈现首屏内容后的某个时间将图像加载到客户端。延迟加载似乎有三种变体:
- 视口 - 图像加载由其接近视口触发
- 设置延迟 - 图像加载由计时器触发
- 手动 - 图片加载由客户端事件触发
所有这些方法都可以使用 javascript 来实现。但是,AMP 不允许使用 javascript,只能使用自定义 AMP 脚本。
视口方法是最理想的,因为它将内容加载降至最低。 AMP 有一个自定义脚本,它支持用于启动和停止视频的视口方法。但是,似乎没有对 amp-img 的类似支持。
我认为,amp-animation 似乎支持设置的延迟。这似乎是一种相当复杂的方法。此外,延迟方法是不可取的,因为最佳延迟取决于互联网带宽,这是可变的。
延迟方法也可以用 PHP 来实现。但是,PHP 是在服务器端解析的。这意味着必须重新加载页面,这完全违背了延迟加载的目的。
似乎只剩下手动方法了。下面的 sn-p 代码创建了两个按钮,可以选择性地显示或隐藏图像。
amp-img id='img1' ...隐藏
按钮打开="tap.img1.show()"
按钮打开="tap.img1.hide()"
对于移动网站,显示按钮可以嵌入到折叠内容的上方,以便用户在浏览网站时触发它。然而,这似乎是一个kludge
Google AMP 是否有效地将延迟加载限制为手动方法,还是有其他方法来完成视口或延迟延迟加载?
提前谢谢你。
【问题讨论】:
标签: lazy-loading amp-html amp-img