2012-08-31 4 views
1

내 웹 응용 프로그램을위한 기능을 많이에서이 코드가하는 XMLHTTPRequest에서 인터넷에 연결하지 않고 시간 제한 스크립트

function ui_editlocation(id){ 

var hr = new XMLHttpRequest(); 

var url = "scripts/ui_processing.php"; 

var ui = "editlocation"; 

var vars = "ui="+ui+"&id="+id; 

hr.open("POST", url, true); 

hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

hr.onreadystatechange = function() { 

    if(hr.readyState == 4 && hr.status == 200) { 

     var return_data = hr.responseText; 

     document.getElementById("ui_content").innerHTML = return_data; 

    } 

} 

hr.send(vars); 

document.getElementById("ui_content").innerHTML = "Loading..."; 

} 

내가 인터넷 연결이 다운 된 경우 '라는 메시지를 받기 몇 가지 코드를 추가 할 인터넷 연결을 확인하고 다시 시도하려면 여기를 클릭하십시오. '

또한 인터넷에 연결되어있는 경우 30 초 후에 시간 제한을 설정하고'현재 네트워크에서 높은 수요가 발생했습니다. 다시 시도하려면 여기를 클릭하십시오. '

'클릭 h 시간이 필요합니다. 다시 시도하십시오 '요청을 다시 보내려면

나는 이것이 큰 질문이지만, 어떤 도움을 주시면 감사하겠습니다.

감사 칼

답변

2
function ui_editlocation(id){ 
var hr = new XMLHttpRequest(); 
var timeout=setTimeout(function(){ 
    hr.abort(); 
    timeout=null; 
    if(confirm("Do you want to try again?")){ui_editlocation(id);} 
},30000); 

var url = "scripts/ui_processing.php"; 

var ui = "editlocation"; 

var vars = "ui="+ui+"&id="+id; 

hr.open("POST", url, true); 

hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

hr.onreadystatechange = function() { 

    if(hr.readyState == 4 && hr.status == 200) { 
     if(timeout){cancelTimeout(timeout);timeout=null;} 

     var return_data = hr.responseText; 

     document.getElementById("ui_content").innerHTML = return_data; 

    } 

} 

hr.send(vars); 

document.getElementById("ui_content").innerHTML = "Loading..."; 

} 
관련 문제