What is meaning of xhr.readystate===4

Yes, it is correct.xhr.readstate===4 means request finished and response is ready. You can refer this for details.

Here is small example:

xmlhttp.open("GET", "test.txt", true);
 xmlhttp.onreadystatechange = function() {
     if(xmlhttp.readyState==4) {
         alert(xmlhttp.responseText);
     }
 }
 xmlhttp.send(null);

The above script makes a GET request for the relative url "text.txt" (relative to the calling page) It provides the function, which checks the readyState property each time it's called and when it has the value 4 - meaning the load is complete, it displays the responseText to the user with an alert.

Source


An Ajax http request has 5 states as your reference documents:

0   UNSENT  open() has not been called yet.
1   OPENED  send() has been called.
2   HEADERS_RECEIVED    send() has been called, and headers and status are available.
3   LOADING Downloading; responseText holds partial data.
4   DONE    The operation is complete.

State 4 means that the request had been sent, the server had finished returning the response and the browser had finished downloading the response content. So, it is right to say that the AJAX call has completed.