Всем привет !
Мне захотелось совместить Python и JS для попытки написания простого веб-чата. Сервер на Python написать я сумел, и для клиентской части выбрал AJAX. Почему нет websocket ? Потому что пока что я не имею полного понимания его работы (как и AJAX'а собственно), а следовательно правильно сервер написать не смогу.
Функцию отправки сообщения из формы я написал, и приступил к функции получения сообщений для клиентской части. Немного подумав я решил использовать следующий порядок получения сообщений. Клиент делает AJAX-запрос и ожидает когда сервер ему ответит (timeout:0), сервер конечно же отвечает лишь по мере появления нового сообщения, и только после того как AJAX получит ответ и запишет его в html-код, он снова делает запрос. Таким образом и сервер особо не нагружается и лишнего сетевого трафика нет.
И тут-то вся проблема.
Я пробовал присваивать запросу переменную и проверять код элемента readyState, он должен быть равен 4 если запрос выполнился и ответ получен, но это замораживает страницу браузера.
В чем собственно вопрос.
Как заставить скрипт проверять получен ли ответ и лишь после этого делать запрос заново ?
UPD: добавил скрин того как в цикле проверку делал.
У jQuery есть метод $.when для того, чтобы дождаться разрешения нескольких ajax-запросов:
$.when.apply($, deferreds).done(function () {
/* здесь код, который должен выполниться по окончанию всех аякс-запросов */
});
Продвижение своими сайтами как стратегия роста и независимости