a property of both Document and XMLHttpRequest objects
readyState
is a property of both Document
and XMLHttpRequest
objects.
Document.readyState
In a Document
object, readyState
represents the object's loading state. It has three possible values:
- loading
- interactive
- complete
Example
When the readyState
value changes, a Document.onreadystatechange
event is fired:
document.onreadystatechange = function () {
if (document.readyState === 'loading') {
console.log('the document is still loading');
} else if (document.readyState === 'interactive') {
console.log('the document has loaded, but sub-resources are still loading');
} else if (document.readyState === 'complete') {
console.log('the document and its sub-resources are loaded');
}
}
XMLHttpRequest.readyState
In an XMLHttpRequest
object, readyState
represents the current state of the request's lifecycle. It has five possible values:
UNSENT
(0)OPENED
(1)HEADERS_RECEIVED
(2)LOADING
(3)DONE
(4)
Example
When the readyState
value changes, a XMLHttpRequest.onreadystatechange
event is fired:
var request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (request.readyState === 1 ||
request.readyState === XMLHttpRequest.OPENED) {
console.log('the request has been successfully opened');
} else if (request.readyState === 2 ||
request.readyState === XMLHttpRequest.HEADERS_RECEIVED) {
console.log('the response headers have been received');
} else if (request.readyState === 3 ||
request.readyState === XMLHttpRequest.LOADING) {
console.log('the response body is being received');
} else if (request.readyState === 4 ||
request.readyState === XMLHttpRequest.DONE) {
console.log('the request is complete');
}
};
request.open('get','http://stackoverflow.com/');
request.send();
Resources
- MDN Document.readyState
- HTML Living Standard: current document readiness
- MDN XMLHttpRequest.readyState
- XMLHttpRequest Living Standard: states