XML HttpRequest
Alle moderne blaaiers het 'n ingeboude XMLHttpRequest-objek om data van 'n bediener te versoek.
Die XMLHttpRequest-objek
Die XMLHttpRequest-objek kan gebruik word om data vanaf 'n webbediener aan te vra.
Die XMLHttpRequest-objek is ' n ontwikkelaarsdroom , want jy kan:
- Dateer 'n webblad op sonder om die bladsy te herlaai
- Versoek data vanaf 'n bediener - nadat die bladsy gelaai is
- Ontvang data vanaf 'n bediener - nadat die bladsy gelaai is
- Stuur data na 'n bediener - in die agtergrond
XMLHttpRequest Voorbeeld
Wanneer jy 'n karakter in die invoerveld hieronder tik, word 'n XMLHttpRequest na die bediener gestuur, en 'n paar naamvoorstelle word teruggestuur (van die bediener af):
Voorbeeld
Die voorbeeld hierbo word in die AJAX-hoofstukke van hierdie tutoriaal verduidelik.
Stuur 'n XMLHttpRequest
'n Algemene JavaScript-sintaksis vir die gebruik van die XMLHttpRequest-objek lyk baie soos volg:
Voorbeeld
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Typical action to be performed when the document is ready:
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "filename", true);
xhttp.send();
Voorbeeld Verduidelik
Die eerste reël in die voorbeeld hierbo skep 'n XMLHttpRequest - objek:
var xhttp = new XMLHttpRequest();
Die onreadystatechange- eienskap spesifiseer 'n funksie wat uitgevoer moet word elke keer as die status van die XMLHttpRequest-objek verander:
xhttp.onreadystatechange = function()
Wanneer readyState- eienskap 4 is en die status - eienskap is 200, is die antwoord gereed:
if (this.readyState == 4 && this.status == 200)
Die responseText- eienskap gee die bedienerrespons as 'n teksstring terug.
Die teksstring kan gebruik word om 'n webblad op te dateer:
document.getElementById("demo").innerHTML = xhttp.responseText;
Jy sal baie meer leer oor die XMLHttpRequest-objek in die AJAX-hoofstukke van hierdie tutoriaal.
Ou weergawes van Internet Explorer (IE5 en IE6)
Ou weergawes van Internet Explorer (IE5 en IE6) ondersteun nie die XMLHttpRequest-objek nie.
Om IE5 en IE6 te hanteer, kyk of die blaaier die XMLHttpRequest-objek ondersteun, of skep anders 'n ActiveXObject:
Voorbeeld
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}