Skip to content

Commit 2f87c35

Browse files
fix(core): skip preloading images from <picture> tags
1 parent 634fb6b commit 2f87c35

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

packages/core/src/lazyLoad.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,17 @@ export function loadImage(
101101
image: HTMLImageElement,
102102
onImageLoad?: (image: HTMLImageElement) => void,
103103
) {
104+
const isChildOfPictureElement = image.parentElement?.tagName.toLowerCase() === 'picture'
105+
106+
// Skip preloading its `data-src` or `data-srcset` to avoid unnecessary requests
107+
if (isChildOfPictureElement) {
108+
updatePictureSources(image)
109+
updateImageSrcset(image)
110+
updateImageSrc(image)
111+
onImageLoad?.(image)
112+
return
113+
}
114+
104115
const imagePreLoader = new Image()
105116
const { srcset, src, sizes } = image.dataset
106117

@@ -114,9 +125,6 @@ export function loadImage(
114125
imagePreLoader.sizes = image.sizes
115126
}
116127

117-
// Update sources to prevent duplicate downloads
118-
updatePictureSources(image)
119-
120128
if (srcset)
121129
imagePreLoader.srcset = srcset
122130
if (src)

0 commit comments

Comments
 (0)