AJAX - onreadystatechangeСобытие


Событие onreadystatechange

Когда запрос отправляется на сервер, нам нужно выполнить некоторые задачи на основе ответа.

Всякий раз, когда readyState изменяется, срабатывает событие onreadystatechange.

Свойство readyState содержит информацию о состоянии XMLHttpRequest.

Ниже приведены три важных свойства объекта XMLHttpRequest:

Свойство Описание
onreadystatechange Сохраняет функцию (или имя функции), которая будет вызываться всякий раз, когда изменяется свойство readyState.
readyState

Содержит статус XMLHttpRequest. Изменяется от 0 до 4.

  • 0: Запрос не инициализирован
  • 1: Соединение с сервером установлено
  • 2: Запрос получен
  • 3: Обработка запроса
  • 4: Запрос завершён и ответ готов
status 200: "OK"
404: Страница не найдена

В событии onreadystatechange мы указываем задачу, которая должна быть выполнена, когда ответ сервера готов к обработке.

Когда readyState равен 4 и статус равен 200, ответ готов:

Пример

xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }

Попробуйте сами »

Примечание:Событие onreadystatechange срабатывает 4 раза (0 - 4), а именно: 0-1, 1-2, 2-3, 3-4, что соответствует каждому изменению readyState.


Использование функции обратного вызова

Функция обратного вызова — это функция, передаваемая как параметр другой функции.

Если на вашем сайте есть несколько задач AJAX, вам следует написатьстандартнуюфункцию для создания объектов XMLHttpRequest и вызывать эту функцию для каждой задачи AJAX.

Вызов функции должен содержать URL и задачу, которая должна быть выполнена при возникновении события onreadystatechange (задача может отличаться при каждом вызове):

Пример

function myFunction() { loadXMLDoc("/try/ajax/ajax_info.txt",function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }); }

Попробуйте сами »
Другие расширения