AJAX - порядок команд с XMLHttpRequest (новичок)

В большинстве примеров, которые я нашел в Интернете, я вижу что-то вроде этого:

ajaxRequest.onreadystatechange = function() {   
    if(ajaxRequest.readyState == 4) {
        document.myForm.time.value = ajaxRequest.responseText;
    }
}

ajaxRequest.open("GET", "serverTime.php", true);
ajaxRequest.send(null);

Как это возможно и как работает этот код, когда свойство "изменить состояние" проверяетсяПЕРЕД выполнением команд открытия и отправки? Я знаю, что это работает... но как поток возвращается обратно к "проверке состояния" после того, как "open" и "send" выполнены.

Буду признателен за любую помощь

Спасибо заранее:-)

2 ответа

Решение

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

Это именно поток AJAX

Сделать запрос

У вас есть новый блестящий объект XMLHttpRequest; теперь возьмите это для вращения. Во-первых, вам нужен метод JavaScript, который может вызывать ваша веб-страница (например, когда пользователь вводит текст или выбирает параметр в меню). Затем вы будете следовать одному и тому же базовому принципу почти во всех ваших Ajax-приложениях:

  1. Получите все необходимые данные из веб-формы.
  2. Создайте URL для подключения.
  3. Откройте соединение с сервером.
  4. Настройте функцию для запуска сервера, когда это будет сделано.
  5. Отправьте запрос.

Обработка ответа

Теперь вам нужно разобраться с ответом сервера. Вам действительно нужно знать только две вещи:

* Don't do anything until the xmlHttp.readyState property is equal to 4.
* The server will stuff it's response into the xmlHttp.responseText property.
Другие вопросы по тегам