我有很多通过 ajax 加载的图像。我正在使用 masonry 和延迟加载插件来显示图像。通过一个 ajax 调用加载所有图像会导致问题并且页面卡住直到所有图像都被安排好,所以我在第一个 ajax 中加载 20 个图像调用,然后在这个一对一的 ajax 请求之后立即在每个调用中获取 10 个图像并通过 masonry append 进行附加。
function getMorePhotos () {
$.ajax({
type : "POST",
url : site_url+'controller/ajax_get_photos',
data : ,
complete: function(response)
{
if (response.responseText != '0' )
{
getMorePhotos();
}
},
success : function(response)
{
if (response == '0' || response == '') {
} else {
var temp = $(response).get();
temp.forEach(function( element, index ) {
$item = $(element);
$('#allPhoto1').find('ul.ins-view').append($item).masonry( 'appended', $item );
$item.find("img.lazy").lazyload({
effect : "fadeIn",
threshold : 100
});
});
}
}
});
}
这是第一次请求完成后的方法调用。
现在的问题是:第一个图像连续闪烁直到最后一个 ajax 请求完成。
我觉得这不是一个好的解决方案。有人可以建议吗?
我的<ul> <li>
结构有四列。(见图)