Проблема с 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 забыл добавить.. хотелось бы услышать решения при котором запросы оставались бы асинхронными. |
как вариант просто "заблокировать" предметы чтобы на них не можна было б нажать во время выполнения запроса)
А вообще никаких проблем(в даном куске кода) не должно быть.... PS: и много у вас пользователей с IE6? :D |
Alex116,
Типично допустимо 5-6 незавершенных; Кладём запросы в массив очереди. Отслеживать кол-во незавершенных запросов(на каждый новый запрос ставим инкремент счетчика, при завершении очередного запроса, счетчик декрементируем(и тестировать на меньше < 6). Если условие не выполняется - ставим таймер setInterval и тестируем колво незавершенных, как выполнилось - исполняем очередной запрос из очереди. |
Часовой пояс GMT +3, время: 17:26. |