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 - это событие, и этот код не будет вызываться до тех пор, пока состояние готовности не изменится, что произойдет в определенный момент в будущем, когда запрос будет завершен.
Сделать запрос
У вас есть новый блестящий объект XMLHttpRequest; теперь возьмите это для вращения. Во-первых, вам нужен метод JavaScript, который может вызывать ваша веб-страница (например, когда пользователь вводит текст или выбирает параметр в меню). Затем вы будете следовать одному и тому же базовому принципу почти во всех ваших Ajax-приложениях:
- Получите все необходимые данные из веб-формы.
- Создайте URL для подключения.
- Откройте соединение с сервером.
- Настройте функцию для запуска сервера, когда это будет сделано.
- Отправьте запрос.
Обработка ответа
Теперь вам нужно разобраться с ответом сервера. Вам действительно нужно знать только две вещи:
* 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.