function getXML(url, doFunc) { var timeoutId; var http = getHTTPObject(); http.open("GET", url, true); http.onreadystatechange = function() { if (http.readyState == 4) { if (http.status == 200) { window.clearTimeout(timeoutId); doFunc(http.responseXML); } } } http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); http.send(null); timeoutId = window.setTimeout( function() { switch (http.readyState) { case 1: case 2: case 3: http.abort(); alert(""); errorDoFunc(); break; default: break; } }, // twenty seconds ); }