1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
---
title: XMLHttpRequest.readyState
slug: Web/API/XMLHttpRequest/readyState
tags:
- AJAX
- XMLHttpRequest
- Свойство
- Ссылка
translation_of: Web/API/XMLHttpRequest/readyState
---
<p>{{APIRef('XMLHttpRequest')}}</p>
<p><strong>Свойство XMLHttpRequest.readyState</strong> возвращает текущее состояние объекта XMLHttpRequest. Объект <abbr title="XMLHttpRequest">XHR</abbr> может иметь следующие состояния:</p>
<table class="standard-table">
<tbody>
<tr>
<td class="header">Значение</td>
<td class="header">Состояние</td>
<td class="header">Описание</td>
</tr>
<tr>
<td><code>0</code></td>
<td><code>UNSENT</code></td>
<td>Объект был создан. Метод <code>open()</code> ещё не вызывался.</td>
</tr>
<tr>
<td><code>1</code></td>
<td><code>OPENED</code></td>
<td><code>Метод open()</code> был вызван.</td>
</tr>
<tr>
<td><code>2</code></td>
<td><code>HEADERS_RECEIVED</code></td>
<td><code>Метод send()</code> был вызван, доступны заголовки (headers) и статус.</td>
</tr>
<tr>
<td><code>3</code></td>
<td><code>LOADING</code></td>
<td>Загрузка; <code>responseText</code> содержит частичные данные.</td>
</tr>
<tr>
<td><code>4</code></td>
<td><code>DONE</code></td>
<td>Операция полностью завершена.</td>
</tr>
</tbody>
</table>
<dl>
<dt>UNSENT</dt>
<dd>Объект XMLHttpRequest был создан, но метод <code>open()</code> ещё не вызывался.</dd>
<dt>OPENED</dt>
<dd>Был вызван метод open(). На этом этапе методом <a href="/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader">setRequestHeader()</a> могут быть установлены заголовки запроса (request headers), после чего для начала выполнения запроса может быть вызван метод <a href="/en-US/docs/Web/API/XMLHttpRequest/send">send()</a> .</dd>
<dt>HEADERS_RECEIVED</dt>
<dd>Был вызван метод send() и получены заголовки ответа (response headers) .</dd>
<dt>LOADING</dt>
<dd>Получена часть ответа. Если <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseType">responseType</a></code> - это пустая строка или имеет значение "text", <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseText">responseText</a></code> будет содержать загруженную порцию текста ответа.</dd>
<dt>DONE</dt>
<dd>Операция доставки данных завершена. Это может означать как то, что передача данных полностью завершена успешно, так и то, что произошла ошибка.</dd>
</dl>
<div class="note">
<p>Названия состояний отличаются в версиях Internet Explorer ранее 11. Вместо <code>UNSENT</code>, <code>OPENED</code>,<code> HEADERS_RECEIVED</code>,<code> LOADING</code> и <code>DONE, используются названия READYSTATE_UNINITIALIZED</code> (0), <code>READYSTATE_LOADING</code> (1), <code>READYSTATE_LOADED</code> (2), <code>READYSTATE_INTERACTIVE</code> (3) и <code>READYSTATE_COMPLETE</code> (4).</p>
</div>
<h2 id="Пример">Пример</h2>
<pre class="brush: js">var xhr = new XMLHttpRequest();
console.log('UNSENT', xhr.readyState); // readyState будет равно 0
xhr.open('GET', '/api', true);
console.log('OPENED', xhr.readyState); // readyState будет равно 1
xhr.onprogress = function () {
console.log('LOADING', xhr.readyState); // readyState будет равно 3
};
xhr.onload = function () {
console.log('DONE', xhr.readyState); // readyState будет равно 4
};
xhr.send(null);
</pre>
<h2 id="Спецификации">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарии</th>
</tr>
<tr>
<td>{{SpecName('XMLHttpRequest', '#states')}}</td>
<td>{{Spec2('XMLHttpRequest')}}</td>
<td>Действующий стандарт WHATWG</td>
</tr>
</tbody>
</table>
<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Свойство</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Базовая поддержка</td>
<td>{{CompatChrome(1)}}</td>
<td>{{CompatGeckoDesktop("1.0")}}<sup>[1]</sup></td>
<td>{{CompatIe(7)}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatSafari("1.2")}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Свойство</th>
<th>Android</th>
<th>Chrome для Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Базовая поддержка</td>
<td>{{CompatUnknown}}</td>
<td>1.0</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
|