JavaScript. Подробное руководство, 6-е издание
Шрифт:
18.1.4. События, возникающие в ходе выполнения НТТР-запроса
В примерах выше для определения момента завершения HTTP-запроса использовалось событие «readystatechange». Проект спецификации «ХНН2» определяет более удобный набор событий, уже реализованный в Firefox, Chrome и Safari. В этой новой модели событий объект
Далее описывается, как генерируются эти новые события в броузерах, поддерживающих их. Когда вызывается метод
Завершение запроса не всегда означает успешное его выполнение, поэтому обработчик события «load» должен проверять код состояния в объекте
Существуют три разные ситуации, когда HTTP-запрос оканчивается неудачей, которым соответствуют три события. Если предельное время ожидания ответа истекло, генерируется событие «timeout». Если выполнение запроса было прервано, генерируется событие «abort». (О предельном времени ожидания и о методе
Для каждого запроса броузер может возбуждать только по одному событию «load», «abort», «timeout» и «error». Проект спецификации «ХНН2» требует, чтобы броузеры возбуждали событие «loadend» после одного из этих событий. Однако на момент написания этих строк событие «loadend» не было реализовано ни в одном из броузеров.
Для регистрации обработчиков всех этих событий, возникающих в ходе выполнения запроса, можно использовать метод
Объект события, связанный с этими событиями, возникающими в ходе выполнения запроса, в дополнение к свойствам обычного объекта
18.1.4.1. События, возникающие в ходе выгрузки
Кроме событий, которые удобно использовать для мониторинга загрузки НТТР-ответа, спецификация «ХНН2» также определяет события для мониторинга выгрузки HTTP-запроса. В броузерах, реализующих эту возможность, объект
Обработчики событий хода выполнения операции выгрузки можно использовать точно так же, как используются обычные обработчики событий хода выполнения загрузки. Для объекта х типа
Пример 18.11 демонстрирует, как использовать событие «progress», генерируемое в ходе выгрузки запроса, для организации обратной связи с пользователем. Этот пример также демонстрирует, как получать объекты
Пример 18.11. Мониторинг хода выполнения операции выгрузки
Метатель
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
рейтинг книги
Доктор. Заново
1. Доктор
Фантастика:
фэнтези
альтернативная история
рейтинг книги
Имперец. Том 4
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Смерч войны
1. Историческая библиотека
Проза:
военная проза
рейтинг книги
Справочник по лечению зависимостей
Справочная литература:
путеводители
рейтинг книги
Потомок бога 3
3. Локки
Фантастика:
аниме
фэнтези
рейтинг книги
Универсальный энциклопедический справочник
Справочная литература:
справочники
энциклопедии
рейтинг книги
Неизвестные страницы истории российского флота
Научно-образовательная:
история
военное дело: прочее
военная история
рейтинг книги
Избрание сочинения в трех томах. Том второй
Проза:
советская классическая проза
рейтинг книги
Полная история государства Российского в одном томе
Научно-образовательная:
история
рейтинг книги