我有这个代码:
function lazyCss(gallery) {
var images = gallery.slider.find('[data-lazy-image]'),
imageLinks = [],
imageToLoad = -1;
for (var i = 0; i < images.length; i++) {
imageLinks[i] = images.eq(i).data('lazy-image');
images.eq(i).removeAttr('data-lazy-image');
}
function loadImage() {
imageToLoad++;
images.eq(imageToLoad).css('background-image', 'url(' + imageLinks[imageToLoad] + ')');
if (imageToLoad != images.length - 1) {
$('<img/>').attr('src', imageLinks[imageToLoad]).on('load', loadImage);
}
}
loadImage();
}
我的问题是:
1) 当我将事件处理程序“loadImage”附加到图像时,它是否会考虑递归,因为我是在该函数内执行此操作?
我担心这段代码会影响我网站的性能,因为递归被认为是不好的。
最佳答案
My questions is:
1) When I attach an event handler "loadImage" to an image, does it consider recursion because I'm doing it inside this function?
不,Question处的JavaScript不执行“递归”。您正在安排可能的函数调用,而不是从函数调用中返回
值。
参见
关于javascript - 如果我在我所在的函数上调用 onload 事件,它是否考虑递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329784/