Итак, я работаю над небольшой фотогалереей, которая загрузит набор изображений с помощью AJAX. В основном он загрузит изображение «fill.gif», сделав запрос AJAX для создания миниатюрного изображения. Страница PHP генерирует миниатюру и отправляет подтверждение, что изображение было сгенерировано, и путь к нему. Мой onSuccess должен затем заменить load.gif фактическим миниатюром.Несколько запросов AJAX не вызывают onSuccess до тех пор, пока не будут выполнены все запросы
Проблема: все это работает отлично, за исключением того, что он не начнет вводить миниатюры до тех пор, пока ВСЕ НЕ завершены незавершенные запросы. Поэтому вместо того, чтобы изображения отображались на расстоянии 1 или 2 секунды, на странице с 20 эскизами для генерации я жду 20 секунд, а затем, когда запросы AJAX идут, затем начинает отображать миниатюры, хотя некоторые из них были готовы на некоторое время.
Вот мой соответствующий код:
function getImageList() {
//Get an XML list of all the images to be displayed.
$.ajax({
url:"gallery.php",
type: "POST",
data:{mode: "getImageList"},
success: function(responseText){
$(responseText).find('galImg').each(function(){
//create the image divs and images, set properties and get values.
var imageBox = document.createElement('div');
var imageElement = document.createElement('img');
imageBox.setAttribute('class','imageBox');
imgThumbPath = $(this).find('img_thumb').text();
imgThumbReady = $(this).find('img_thumb_ready').text();
imgPath = $(this).find('img_path').text();
imageElement.setAttribute('id',imgPath);
imageBox.appendChild(imageElement);
$('#galleryContainer').append(imageBox);
//now load the src of the image
if (imgThumbReady=='no') {
imageElement.setAttribute('src',loadingImage);
$.ajax({
url: "gallery.php",
type: "POST",
data: {mode: "generateThumbnail",imgPath:imgPath},
success: function(response){
if ($(response).find('message').text() == 'Sucess') {
imageElement.setAttribute('src',$(response).find('galImg').find('img_thumb').text());
} else {
alert('Problem Loading Image - '+$(response).find('message').text());
}
},
datatype: "html"
});
} else {
imageElement.setAttribute('src',imgThumbPath);
}
});
},
datatype:"html"
});
}
Вы имели в виду loadImage (nextImage) правый? – letronje