AJAX - palvelinvastaus
- Edellinen sivu AJAX-pyyntö
- Seuraava sivu AJAX XML-tiedosto
onreadystatechange-ominaisuus
readyState
Ominaisuus säilyttää XMLHttpRequest:n tilan.
onreadystatechange
määrittelee funktion, joka suoritetaan, kun readyState muuttuu.
status
Ominaisuudet ja statusText
Ominaisuus sisältää XMLHttpRequest-objektin tilan.
Ominaisuus | Kuvaus |
---|---|
onreadystatechange | Määrittelee funktion, joka kutsutaan, kun readyState-ominaisuus muuttuu. |
readyState |
tallentaa XMLHttpRequest:n tilan.
|
status |
Täydelliselle luettelolle vieraile: Http viestien viittauskirja |
statusText | palauttaa tilatekstin (esim. "OK" tai "Not Found") |
jokaisen readyState muuttuu, niin kutsutaan onreadystatechange-funktiota.
kun readyState
on 4
,status
on 200
kun vastaus on valmis:
Esimerkki
function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); }
Huomautus:onreadystatechange
tulee esiin viisi kertaa (0-4), kerran readyState
kaikki muuttuvat.
Käyttää paluutoimintoja
Paluutoiminto on funktio, joka siirretään parametrina toiseen funktioon。
Jos verkkosivustollasi on useita AJAX-tehtäviä, sinun tulisi luoda funktio, joka suorittaa XMLHttpRequest-objektin, sekä funktio, joka toimii paluutoimena jokaiselle AJAX-tehtävälle。
Tämä funktio tulisi sisältää URL:n ja funktion, joka kutsutaan, kun vastaus on valmis.
Esimerkki
loadDoc("url-1", myFunction1); loadDoc("url-2", myFunction2); function loadDoc(url, cFunction) { var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { cFunction(this); } }; xhttp.open("GET", url, true); xhttp.send(); } function myFunction1(xhttp) { // Toiminta täällä } function myFunction2(xhttp) { // Toiminta täällä }
Palvelimen vastausominaisuus
Ominaisuus | Kuvaus |
---|---|
responseText | Hanki merkkijonona olevaa vastausdataa |
responseXML | Hanki XML-muodossa olevaa vastausdataa |
Palvelimen vastausmetodi
Metodi | Kuvaus |
---|---|
getResponseHeader() | Palauttaa tietyn palvelimen otsikkotiedon |
getAllResponseHeaders() | Palauttaa kaikki palvelimen otsikkotiedot |
responseText ominaisuus
responseText
Ominaisuus palauttaa palvelimen vastauksen JavaScript-merkkijonona, joten voit käyttää sitä tällä tavalla:
Esimerkki
document.getElementById("demo").innerHTML = xhttp.responseText;
responseXML ominaisuus
XML HttpRequest-objekti sisältää sisäänrakennetun XML-tulkinnan.
ResponseXML
ominaisuus palauttaa palvelimen vastauksen XML DOM-objektina.
Tämän ominaisuuden avulla voitAnalysoiXML DOM-objektille:
Esimerkki
Pyydetty tiedosto music_list.xml,ja analysoi vastaus:
xmlDoc = xhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; xhttp.open("GET", "music_list.xml", true); xhttp.send();
Sinä opit tässä oppaassa lisää XML DOM:sta.
getAllResponseHeaders() -metodi
getAllResponseHeaders()
Metodi palauttaa kaikki otsikkotiedot, jotka tulevat palvelimen vastauksesta.
Esimerkki
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); } };
getResponseHeader() -metodi
getResponseHeader()
Metodi palauttaa tietyn otsikkotiedon palvelimen vastauksesta.
Esimerkki
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getResponseHeader("Last-Modified"); } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send();
- Edellinen sivu AJAX-pyyntö
- Seuraava sivu AJAX XML-tiedosto