Domanda

Ho visto semplici esempi di codici sorgente Ajax in molti tutorial online.Quello che voglio sapere è se usare il codice sorgente negli esempi è perfettamente corretto o no?

C'è altro da aggiungere al codice utilizzato in un'applicazione del mondo reale?

Quali misure devono essere adottate per rendere l'applicazione più solida e sicura?

Ecco un esempio di codice sorgente che ho preso dal web:

function getChats() {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            return;
    } 
    var url="getchat.php?latest="+latest;   
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
} 

function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
            xmlHttp=new XMLHttpRequest();
    } catch (e) {
            try {
                    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
    }
    return xmlHttp;
}
È stato utile?

Soluzione

Nel codice che hai pubblicato manca un ingrediente importante:la funzione stateChanged.

Se non capisci bene il codice che hai postato, ciò che accade è che quando la chiamata a getchats.php è completa, viene chiamata una funzione "stateChanged" e quella funzione sarà responsabile della gestione della risposta.Dato che lo script che stai chiamando e la funzione stessa hanno il prefisso "gets", sono abbastanza sicuro che la risposta sia qualcosa che ti interesserà.

A parte questo, ci sono diversi modi per migliorare il codice che hai pubblicato.Immagino che funzioni dichiarando un singolo oggetto "xmlHttp" e quindi rendendolo disponibile per ogni funzione (perché in caso contrario, la funzione stateChanged non ha modo di ottenere la risposta).Questo va bene finché non si esegue una richiesta AJAX prima che l'ultima (o le ultime) non abbia ancora risposto, in tal caso il riferimento all'oggetto viene sovrascritto ogni volta all'ultima richiesta.

Inoltre, qualsiasi codice AJAX degno di nota fornisce funzionalità in caso di successo e fallimento (errori del server, pagina non trovata, ecc.) in modo che il messaggio appropriato possa essere consegnato all'utente.

Se desideri semplicemente utilizzare la funzionalità AJAX sul tuo sito web, ti indicherei la direzione di jQuery o a simile struttura.

MA se vuoi davvero capire la tecnologia e cosa sta succedendo dietro le quinte, continuerei a fare quello che stai facendo e a porre domande specifiche mentre provi a costruire da solo una piccola classe AJAX leggera.Ecco come l'ho fatto e, anche se oggi utilizzo il framework jQuery...Sono ancora felice di sapere come funziona dietro le quinte.

Altri suggerimenti

Vorrei utilizzare un framework come DOMAssistente che ha già svolto il duro lavoro per te e sarà più robusto e aggiungerà funzionalità extra utili.

A parte questo, il tuo codice sembra che farebbe il lavoro.

Consiglierei onestamente di utilizzare una delle tante librerie disponibili per Ajax.Io uso prototipo me stesso, mentre gli altri preferiscono jQuery.Mi piace il prototipo perché è piuttosto minimale.IL Tutorial sul prototipo di Ajax lo spiega bene.Consente inoltre di gestire facilmente gli errori.

new Ajax.Request('/some_url',
  {
    method:'get',
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
    },
    onFailure: function(){ alert('Something went wrong...') }
  });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top