jsjquery 点击图片 用layeropen弹出显示 每次点击图片都会被网络加载一次 如何防止同一张图片多次加载
可以通过缓存图片的方式来防止同一张图片多次加载。可以使用一个对象来存储已经加载过的图片,每次点击图片时先检查是否已经加载过,如果已经加载过,则直接使用缓存的图片,否则再进行网络加载。
以下是一个示例代码:
var imageCache = {};
$('img').click(function() {
var imageUrl = $(this).attr('src');
if (imageCache[imageUrl]) {
// 使用缓存的图片
layer.open({
content: '<img src="' + imageCache[imageUrl] + '">'
});
} else {
// 网络加载图片
var image = new Image();
image.onload = function() {
// 缓存图片
imageCache[imageUrl] = imageUrl;
layer.open({
content: '<img src="' + imageUrl + '">'
});
};
image.src = imageUrl;
}
});
在这个示例中,首先定义了一个imageCache对象来缓存已加载的图片。当点击图片时,首先获取图片的URL,然后检查是否已经存在于缓存中,如果存在则直接使用缓存的图片,否则创建一个新的Image对象进行网络加载,并在加载完成后将图片URL存储到缓存中,然后再使用layer.open弹出图片。这样就能够避免同一张图片多次加载了
原文地址: https://www.cveoy.top/t/topic/hRLf 著作权归作者所有。请勿转载和采集!