Bladeren bron

prevent idle timeout to be triggered when Image instances are used

Gildas 7 jaren geleden
bovenliggende
commit
4d4c3383bc
1 gewijzigde bestanden met toevoegingen van 4 en 3 verwijderingen
  1. 4 3
      lib/lazy/content/content-lazy-loader.js

+ 4 - 3
lib/lazy/content/content-lazy-loader.js

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