对于符合Google加速移动页面(AMP)项目的网页,延迟加载图片的方法是什么?
据我所知,延迟加载意味着在呈现上层内容后的某个时间将图像加载到客户端。似乎有三种延迟加载变体:
所有这些方法都可以使用javascript实现。但是,AMP不允许使用javascript,只允许自定义AMP脚本。
视口方法是最理想的方法,因为它可以将内容加载降至最低。 AMP有一个自定义脚本,支持用于启动和停止视频的视口方法。但是,对于amp-img似乎没有类似的支持。
我认为,放大动画似乎支持设定的延迟。这似乎是一种相当复杂的方法。此外,延迟方法是不合需要的,因为最佳延迟取决于可变的互联网带宽。
延迟方法也可以用PHP实现。但是,PHP在服务器端进行了解析。这意味着页面必须重新加载,这完全违背了延迟加载的目的。
似乎手动方法仍然存在。以下代码片段创建了两个按钮,可以选择性地显示或隐藏图像。
amp-img id =' img1' ...隐藏
按钮开启=" tap.img1.show()"
按钮开启=" tap.img1.hide()"
对于移动网站,可以将显示按钮嵌入到折叠内容的上方,以便用户在浏览网站时触发它。然而,这看起来像一个kludge
Google AMP是否有效地将延迟加载限制为手动方法,还是有其他方法可以实现视图端口或延迟延迟加载?
提前谢谢。
答案 0 :(得分:1)
所有AMP元素始终都是延迟加载的。目前无法配置延迟加载的阈值(例如,基于距视口的距离)。
答案 1 :(得分:1)
根据AMP documentation,AMP图像被延迟加载。他们指出AMP运行时使用<amp-img>
标签来:
- 至关重要
了解资产加载之前页面的布局,这对于支持 first-viewport预加载
控制网络请求 延迟加载 并有效地对资源进行优先级分配”。
因此,简而言之:您不需要延迟加载图像。他们已经为您做到了。
这样做对他们来说很有意义,尤其是因为AMP的重点是性能,并且延迟加载是可以提高速度的最基本的操作之一。
实际上,AMP的功能更加巧妙:prefetching延迟加载的资源:
“ AMP还预取了延迟加载的资源。资源要尽可能晚地加载,但要尽可能早地预取。那样的话,加载速度非常快,但是只有在实际向用户显示资源时才使用CPU。”
如果您对AMP运行时进行更深入的研究,您会发现它们实际上实现了比延迟加载更先进的技术,这就是为什么AMP几乎是瞬时的...