<div id="myDiv"></div>
<script>
var xmlhttp = new XMLHttpRequest();
document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
xmlhttp.onreadystatechange = function() {
document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
}
xmlhttp.open("GET", "example.com", true);
xmlhttp.send();
</script>
I get this in display:
0
1
1
2
3
4
Why there are two 1s?
My browser is firefox 17.0.
Ready states are well defined for XML HTTP object: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#Properties.
But sequences of ready states seem to be different for every browser, so you can’t rely on particular sequence of states in your code.
You can test your browser here.