|
|
@@ -30,7 +30,7 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
|
|
|
function process(options) {
|
|
|
return new Promise(async resolve => {
|
|
|
- let timeoutId, srcAttributeChanged;
|
|
|
+ let timeoutId, loadingImages;
|
|
|
setAsyncTimeout(() => {
|
|
|
clearAsyncTimeout(timeoutId);
|
|
|
lazyLoadEnd(idleTimeoutId, observer, cleanupAndResolve);
|
|
|
@@ -47,14 +47,14 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
}
|
|
|
});
|
|
|
if (updated.length) {
|
|
|
- srcAttributeChanged = true;
|
|
|
+ loadingImages = true;
|
|
|
timeoutId = await deferLazyLoadEnd(timeoutId, idleTimeoutId, observer, options, cleanupAndResolve);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
observer.observe(document, { subtree: true, childList: true, attributes: true });
|
|
|
const idleTimeoutId = await setAsyncTimeout(() => {
|
|
|
- if (!srcAttributeChanged) {
|
|
|
+ if (!loadingImages) {
|
|
|
clearAsyncTimeout(timeoutId);
|
|
|
lazyLoadEnd(idleTimeoutId, observer, cleanupAndResolve);
|
|
|
}
|
|
|
@@ -66,6 +66,7 @@ this.lazyLoader = this.lazyLoader || (() => {
|
|
|
addEventListener(hooksFrame.IMAGE_LOADED_EVENT, onImageEvent);
|
|
|
|
|
|
async function onImageEvent() {
|
|
|
+ loadingImages = true;
|
|
|
timeoutId = await deferLazyLoadEnd(timeoutId, idleTimeoutId, observer, options, cleanupAndResolve);
|
|
|
}
|
|
|
|