Comment gérer XHR erreur d'affichage des messages?

Je suis en train de chercher un peu de contenu à partir d'une autre source à l'aide XHR comme indiqué ci-dessous:

function fetchPage(str)
{
    if(str=="")
    {
        document.getElementById("table").innerHTML="";
        resetFilters();
        $('#progress').hide();  //fetching progress bar <div>
        return;
    }
    if (window.XMLHttpRequest) //code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    else //code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    xmlhttp.onreadystatechange=postCallback;
    xmlhttp.open("GET", "fetch.php?url=http://www.sis.itu.edu.tr/tr/ders_programlari/LSprogramlar/prg.php?fb="+str, true);
    xmlhttp.send();

//any stuff that goes here will happen before callback
// (this is a good place to update a UI element showing a call is resolving.)
// (for example a spinner or text saying "fetching")
$('#progress').show();
progressFetching();
switch(xmlhttp.readyState){ //loading bar adjustments
    case 0:
        $('.bar').css("width","0%");
        $('.bar').text("0%");
        break;
    case 1:
        $('.bar').css("width","25%");
        $('.bar').text("25%");
        break;
    case 2:
        $('.bar').css("width","50%");
        $('.bar').text("50%");
        break;
    case 3:
        $('.bar').css("width","75%");
        $('.bar').text("75%");
        break;
}
}



function postCallback()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200){
    progressDone();   //loading is finished
    $('#error').hide();
    document.getElementById("table").innerHTML=xmlhttp.responseText;                     

    //continue to process post callback.
    resetFilters();
}
else {
    //report error with fetch

    /*if(xmlhttp.status==404 || xmlhttp.responseText == "")
        $('#error').show();*/
    //$('#error').show();
}
}

Je veux que ma page d'erreur s'affiche lorsque le délai d'attente de connexion se produit, ou lorsque l'ordinateur ne dispose pas d'une connexion internet (peut-être une erreur s'est produite lors de la pendaison autour) ou de toute autre situation où la page web ne parvient pas à extraire le contenu de l'autre source.

À l'aide du code ci-dessus, dans le else bloc, si je pars pour if(xmlhttp.status==404 || xmlhttp.responseText == "") dans le /* */ section des commentaires, je ne rentrerai pas une erreur, sauf si ce n'est pas une erreur 404. Si je pars pour // section commentaire, erreur sera affiché après la récupération au démarrage du processus jusqu'à son terme, c'est à dire entre xmlhttp.readyState = 0 par xmlhttp.readyState = 4. Comment puis-je afficher des messages d'erreur de connexion à l'aide de ces attributs ou autre chose?

Merci de votre attention:)

Puisque vous avez déjà reçu jQuery à la place, pourquoi ne pas utiliser jQuery pour XHR la manipulation? C'est bien plus simple et probablement résout les problèmes de navigateur, vous ne pensez pas (encore).
Je pense que vous êtes à l'aide de jQuery, si c'est ce cas de départ: api.jquery.com/jQuery.ajax et de prendre un coup d'oeil à la "erreur" paramètre (ne pas reprogrammer ce que vous avez déjà)
Je suis nouveau à cela, je vous remercie pour vos suggestions:)

OriginalL'auteur Varaquilex | 2013-02-05