Чтобы использовать объект XMLHttpRequest в асинхронном режиме, необходимо передать методу open() в третьем аргументе значение true (или просто опустить
500 Глава 20. Работа с протоколом HTTP

третий аргумент, поскольку значение true используется по умолчанию). В этом случае метод send() отправит запрос серверу и сразу же вернет управление. Ко_ гда придет ответ от сервера, он будет доступен через те же свойства объекта XMLHttpRequest, которые были описаны выше.
Асинхронный ответ от сервера – это как асинхронный щелчок мыши, сделан_ ный пользователем: вам потребуется извещение, сообщающее об этом. Роль та_ кого извещения может выполнить обработчик события. В случае объекта XMLHttpRequest такой обработчик события устанавливается в свойство onreadysta_ techange. Как следует из имени свойства, функция_обработчик вызывается при изменении значения свойства readyState. Свойство readyState – это целое число, которое определяет код состояния HTTP_запроса, а его возможные значения пе_ речислены в табл. 20.1. Объект XMLHttpRequest не определят символических кон_ стант ни для одного из пяти значений, перечисленных в таблице.
Таблица 20.1. Значения свойства readyState объекта XMLHttpRequest
