В опубликованном коде отсутствует один важный компонент: функция stateChanged.
Если вы не совсем понимаете код, который вы разместили самостоятельно, то происходит, когда завершается вызов getchats.php, вызывается функция «stateChanged», и эта функция будет отвечать за обработку ответа. Поскольку скрипт, который вы вызываете, и сама функция с префиксом «gets», я уверен, что ответ - это то, что вас заинтересует.
Кроме того, существует множество способов улучшить код, который вы разместили. Я предполагаю, что это работает, объявляя один объект "xmlHttp", а затем делая его доступным для каждой функции (потому что если это не так, функция stateChanged не может получить ответ). Это нормально, пока вы не выполните AJAX-запрос до того, как последний (или несколько последних) еще не ответил, что в этом случае ссылка на объект перезаписывается на последний запрос каждый раз.
Кроме того, любой AJAX-код, достойный его соли, предоставляет функциональные возможности для случаев сбоев и сбоев (ошибки сервера, страница не найдена и т. Д.), Так что соответствующее сообщение может быть доставлено пользователю.
Если вы просто хотите использовать функциональность AJAX на своем веб-сайте, я бы указал вам направление jQuery или аналогичный framework .
НО, если вы действительно хотите понять технологию и то, что происходит за кулисами, я буду продолжать делать то, что вы делаете, и задавать конкретные вопросы, пытаясь создать небольшой легкий класс AJAX самостоятельно. Вот как я это сделал, и хотя сегодня я использую фреймворк jQuery ... Я все еще рад, что знаю, как он работает за кулисами.