-
Notifications
You must be signed in to change notification settings - Fork 16
XMLHttpRequest events
Последовательность действийЭкземпляр XMLHttpRequestМетод open()Метод send()Свойство readyStateСвойство statusСвойство responseText
Значения свойств, начинающиеся на on, могут быть ссылкой на колбэк-функцию, которая будет вызвана в момент возникновения события
Тип обрабатываемого события - текст, следующий за on в имени свойства
Свойство, значение которого является ссылкой на колбэк-функцию, которая будет обрабатывать событие изменения значения readyState
Назначить обработчика:
var transport = new XMLHttpRequest ()
transport.onreadystatechange = function ( event ) {
if ( this.readyState === 4 &&
this.status === 200 )
console.log ( event )
}При вызове колбэк-функции ей будет передан объект события:
▼ Event {isTrusted: true, type: "readystatechange", target: XMLHttpRequest, currentTarget: XMLHttpRequest, eventPhase: 2, …}
bubbles: false
cancelBubble: false
cancelable: false
composed: false
► currentTarget: XMLHttpRequest { onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, … }
defaultPrevented: false
eventPhase: 0
isTrusted: true
► path: []
returnValue: true
► srcElement: XMLHttpRequest { onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, … }
► target: XMLHttpRequest { onreadystatechange: ƒ, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, … }
timeStamp: 87810968.4
type: "readystatechange"
► __proto__: Event
☕ Пример в песочнице
|
🔗 HTTP Status Messages |
|---|
Остальные события ( loadstart, loadend, progress, load, error, timeout ) отличаются от события readystatechange - они относятся к категории ProgressEvent:
▼ ƒ ProgressEvent()
arguments: null
caller: null
length: 1
name: "ProgressEvent"
► prototype: ProgressEvent {constructor: ƒ, Symbol(Symbol.toStringTag): "ProgressEvent"}
► __proto__: ƒ Event()Это свойство содержит ссылку колбэк-функцию, которая будет обрабатывать событие благополучного завершения загрузки данных с сервера
var transport = new XMLHttpRequest ()
transport.onload = function () {
console.log ( this.responseText )
}var request = new XMLHttpRequest()
request.open (
"get",
'https://httpbin.org/get',
true
)
request.responseType = "arraybuffer";
request.onloadstart = function( event ) {
console.log ( 'START' )
}
request.onloadend = function( event ) {
console.log ( 'END' )
}
request.onprogress = function( event ) {
console.log ( `progress: ${event.loaded} / ${event.total}` )
}
request.onload = function( event ) {
console.log ( this.response )
}
request.send ()Это свойство содержит ссылку колбэк-функцию, которая будет вызвана, когда истечет установленный временной интервал
Временной интервал устанавливается путем определения значения свойства timeout
var request = new XMLHttpRequest()
request.open (
"POST",
'https://httpbin.org/post'
)
request.setRequestHeader (
"Content-Type",
"application/x-www-form-urlencoded"
)
request.timeout = 100
request.ontimeout = function( event ) {
console.log ( event )
}Это свойство содержит ссылку колбэк-функцию, которая будет обрабатывать ошибки, возникающие при загрузке данных с сервера
var transport = new XMLHttpRequest ()
transport.onerror = function ( err ) {
console.log ( this.responseText )
}
☕ Пример в песочнице
|
☕ Пример в песочнице
|
|---|
| 💼 Упражнения | 🔗 Протокол TCP |
🔗 RFC793 |
|---|
© Irina H.Fylyppova 2018
Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 |
| ⏬ |
|---|
- Блок-схема алгоритма
- Developer Tools
- Chrome DevTools
- Переменные
- Оператор typeof
- Структуры данных
- Операторы присваивания
- Логические выражения
- Условные операторы
- Инкремент
- Свойство length
- Оператор цикла for
- UTF-8
Homework
- Приведение типов
- NaN | null | Infinity
- BigInt (ES10)
- Функции
- Методы
- Методы строк
- Методы массивов
- Date ()
Самостоятельная работа
Практика (XSS)
Homework
- Циклы while и do...while
- Циклы for...of и for...in
- Параметры по умолчанию
- Объект function
Практика
Homework
- Нативные и host-объекты
- Литерал объекта
- Унаследованные свойства
- Конструктор
- Модель наследования
- Публичные и приватные свойства
- Оператор in
1
Homework
- Итерирующие методы массивов
- Тестирование производительности
- SHA
Homework
- Размеры и прокрутка элемента
- Event Loop
- async | await
- API
- REST | HATEOAS
- status codes
JSON placeholder-
JSON server
fake chat
Homework
- strict mode
- Вычисляемые имена свойств
- Краткий синтаксис методов
- Краткий литерал объекта
- Классы
Homework
- :not(:defined)
- Shadow DOM
- Custom elements
- Lifecycle hooks
- whenDefined
- <template>
- slot
1
2
3
Homework
- npm
- webpack
Упражнение 1- ES6 модули
Упражнение 2- --mode | --watch
Упражнение 3
Упражнение 4
Упражнение 5
Упражнение 6
Упражнение 7
Упражнение 8
Homework
| ⏫ |
|---|

Дополнительно
Справочная инфо
Git Bush
TCP/IP
Коды символов