импортировать файл XML через AJAX - PullRequest
0 голосов
/ 09 августа 2010

Код ниже делает большую часть того, что мне нужно. Функция запускается каждый раз, когда на страницу загружается новое изображение. Однако это создало 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();
            }
        }
    });
}

1 Ответ

0 голосов
/ 09 августа 2010

Возможно, вы захотите использовать плагин AjaxQ.

  • Браузеры накладывают ограничение на количество открытых подключений к сервер. Все запросы, которые не подходят в пределе будем ждать быть запущенным в любом случае. Internet Explorer не открывает более 2-х соединений на сервер за один раз по умолчанию. Mozilla Firefox, Opera и Safari имеют ограничение 8 соединений на сервер.

  • Иногда важно избегать излишнего заполнения сервера одновременных запросов AJAX.

  • Веб-приложению нужны AJAX-запросы для запуска по очереди, порядок важен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...