Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2015, 11:36
Новичок на форуме
Отправить личное сообщение для Alex116 Посмотреть профиль Найти все сообщения от Alex116
 
Регистрация: 20.07.2015
Сообщений: 1

Проблема с XMLHttpRequest слишком много запросов.
Здраствуйте,

возникла следующая проблема..

function blablabla(str) {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp_move = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp_move = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp_move.onreadystatechange = function() {
            if (xmlhttp_move.readyState == 4 && xmlhttp_move.status == 200) {
		document.getElementById("inventory").innerHTML = xmlhttp_move.responseText;
            }
        }
        xmlhttp_move.open("GET","/m/inventory.php?id="+str,true);
        xmlhttp_move.send();  
}

это код инвентаря из онлайн игры, при нажатии на одну из ссылкок предмет надевается.. соответсвенно обновляется DIV и мы видим ее надетой.
Но если не ждать того что бы предмет наделся и нажимать на предметы подряд происходит какой-то баг.. и тэг пустой.

Есть некоторые идеи, но хотелось бы услышать оптимальный вариант решения данной проблемы.

Спасибо заранее за помощь

P.S забыл добавить.. хотелось бы услышать решения при котором запросы оставались бы асинхронными.

Последний раз редактировалось Alex116, 20.07.2015 в 11:48. Причина: добавление
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2015, 15:07
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

как вариант просто "заблокировать" предметы чтобы на них не можна было б нажать во время выполнения запроса)
А вообще никаких проблем(в даном куске кода) не должно быть....
PS: и много у вас пользователей с IE6?
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2015, 15:59
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Alex116,
Типично допустимо 5-6 незавершенных;
Кладём запросы в массив очереди.
Отслеживать кол-во незавершенных запросов(на каждый новый запрос ставим инкремент счетчика, при завершении очередного запроса, счетчик декрементируем(и тестировать на меньше < 6).
Если условие не выполняется - ставим таймер setInterval и тестируем колво незавершенных, как выполнилось - исполняем очередной запрос из очереди.

Последний раз редактировалось Deff, 20.07.2015 в 16:01.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слишком много переадресовок HTTP (Too many HTTP redirects) devote Оффтопик 8 13.06.2013 10:20
проблема с new XMLHttpRequest() files adik7960 AJAX и COMET 0 31.03.2013 15:32
Очередь XML запросов Евгений М AJAX и COMET 4 01.02.2012 11:05
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07