XMLHttpRequest hangs on readyState 3

C

coolvirus

I'm using the XMLHTTPRequest JavaScript object to fetch updated info
from the server.

The problem I'm having occurs on Windows 2000/IE 6. There is a very
long pause on readyState 3 (close to a minute, maybe more) but it
eventually gets to readyState 4. I have no idea why. The page works
just fine on Windows XP/IE 6.

There is no delay or hang up on the server side as far as I can tell
(if we get to readyState 3 is because the server already sent its
response).

Does anyone know what takes place between readyState 3 and 4 and why
does this happen on Windows 2000 but not on Windows XP?

Any input will be greatly appreciated.

Here's the code for illustration purposes.

var xmlobj=null;
var data=new Array();

function sendRequest(doc)
{
// check for existing requests
if( xmlobj != null && xmlobj.readyState != 0 && xmlobj.readyState !=
4 )
{
xmlobj.abort();
}

xmlobj = createXMLHttpRequest(); //my own library function to create
object
xmlobj.onreadystatechange=stateChecker;
xmlobj.open('GET',doc,true);

xmlobj.setRequestHeader("Cache-Control", "no-cache");
xmlobj.setRequestHeader("If-Modified-Since", "Wed, 31 Dec 1980
00:00:00 GMT");
xmlobj.setRequestHeader("Expires", "Wed, 31 Dec 1980 00:00:00 GMT");

xmlobj.setRequestHeader("Connection", "close");

xmlobj.send(null);
}


function stateChecker()
{
alert( "stateChecker: xmlobj.readyState = " + xmlobj.readyState );

if( typeof(xmlobj) != "undefined" && xmlobj != null &&
xmlobj.readyState == 4 )
{
if(xmlobj.status == 200)
{
data=xmlobj.responseText.split('\n');
displayData();
}
else if( xmlobj.status != 0 )
{
alert("Failed to get response: "+ xmlobj.status + " - " +
xmlobj.statusText);

}
}
}

function displayData()
{
//Dynamically re-draw page here.
}
 
J

James Black

coolvirus said:
function stateChecker()
{
alert( "stateChecker: xmlobj.readyState = " + xmlobj.readyState );

if( typeof(xmlobj) != "undefined" && xmlobj != null &&
xmlobj.readyState == 4 )
{
if(xmlobj.status == 200)
{
data=xmlobj.responseText.split('\n');
displayData();
}
else if( xmlobj.status != 0 )
{
alert("Failed to get response: "+ xmlobj.status + " - " +
xmlobj.statusText);

}
}

else {
return false;
}

This should fix your problem, most likely.
 
C

coolvirus

James,

Thank you very much for the reply but it didn't work. Still hanging on
readyState 3.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,576
Members
45,054
Latest member
LucyCarper

Latest Threads

Top