我们知道图像延迟加载是如何工作的。当页面加载并向下滚动到图像时,它就会开始加载。然后向下滚动到下一张图片,它开始加载。
现在,是否有可能当页面加载或绘制时,所有图像都开始一张一张地加载?这样您就不必向下滚动到下一张图像并等待它加载?
请告诉我是否有任何解决方案。
我搜索了一下,没有发现类似的情况。
是的,这是可能的。考虑 Promise 架构和 then 函数。承诺是要兑现的事情。你可以像这样连锁承诺:
function promisedElements(elements, func) {
let currentPromise;
let initialPromise;
for (let element of elements) {
if (currentPromise) {
currentPromise = currentPromise.then(func(element))
} else {
initialPromise = currentPromise = func(element);
}
}
return initialPromise;
}
其中
func
需要是一个函数,它接受 element
并为其返回一个承诺(以加载该元素)。所以你把它们拴起来。