Код ниже делает большую часть того, что мне нужно. Функция запускается каждый раз, когда на страницу загружается новое изображение. Однако это создало 100 запросов к одному и тому же XML-файлу на сервере ... что не очень хорошо, давайте будем честными.
Итак, как мне переставить эту функцию, чтобы использовался только 1 xml-запрос (хотя я извлекаю 1 элемент, где i = id, весь xml-файл все еще кэшируется), поэтому я знаю, что могу его использовать.
function loadImages(i){
i++;
$.ajax
({
type: "GET",
url: "sites.xml",
dataType: "xml",
async: "true",
success: function(xml)
{
// these are the id's of images i do not want to load
var a = [2,3,4,5,6,7,8,9,19,18,60,61,50,49,79,78,81,82,80,70,90,91,92,93,94];
if ( a.indexOf( 2 ) !== -1 ) { // do this if not an 1 of the id's above
var img = $(xml).find('image[id=' + i + ']'),
id = img.attr('id'),
url = img.find('url').text();
$('#loading'+i).html('<img src="'+url+'" onLoad="loadImages('+i+')" />').hide();
$('#loading'+i).fadeIn();
}
}
});
}