1

私のWebアプリの多くの機能にこのコードがあります

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 秒後にタイムアウトになり、「現在、ネットワークで高い需要が発生しています。ここをクリックして再試行してください」と言います。

リクエストを再送信するには、「ここをクリックして再試行してください」が必要です

これは大きな質問であることは承知していますが、何か助けていただければ幸いです。

ありがとうカール

4

1 に答える 1

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...";

}
于 2012-08-31T13:54:54.470 に答える