Tengeneza XMLHttpRequest
- Mfano wa mtokeo wa mbali Mfano wa mtokeo wa DOM
- Pya ja Maktaba ya DOM
XMLHttpRequest 对象提供了在网页加载后与服务器进行通信的方法。
什么是 XMLHttpRequest 对象?
XMLHttpRequest 对象是Mlimani wa wasomi, kwa sababu tunaweza:
- Kuendeleza ukurasa bila kushikilia ukurasa
- Kutumia data kutoka kwa mawasiliano ya mbali mbali baada ya kushikilia ukurasa
- Kutumia data kutoka kwa mawasiliano ya mbali mbali baada ya kushikilia ukurasa
- Kutuma data kwa mawasiliano ya mbali mbali
Barabara zote za mtaani zinaongea kwa XMLHttpRequest.
Kuzia kuzungumza na XMLHttpRequest
Kwa njia ya kipindi kimoja cha JavaScript, tunaweza kuzia kuzungumza na XMLHttpRequest kwa sababu ya kumekadiri.
Katika barabara mpya zote (kuzingatia IE 7):
xmlhttp=new XMLHttpRequest()
Katika Internet Explorer 5 na 6:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Mfano
<script type="text/javascript"> var xmlhttp; function loadXMLDoc(url) { xmlhttp=null; if (window.XMLHttpRequest) {// code for all new browsers} xmlhttp=new XMLHttpRequest(); } else if (window.ActiveXObject) {// code for IE5 and IE6} xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",url,true); xmlhttp.send(null); } else { alert("Your browser does not support XMLHTTP."); } } function state_Change() { if (xmlhttp.readyState==4) {// 4 = "loaded"} if (xmlhttp.status==200) {// 200 = OK} // ...nakuzungumza kwa programu hii... } else { alert("Nenda kusomola data ya XML"); } } }
Mbinu:onreadystatechange niwezesha kwa matukio. Jina lake (state_Change) ni jina la programu, ambao huitwa kwa sababu ya kutokea uharibifu wa hali ya XMLHttpRequest kwa sababu ya uharibifu wa hali kutoka 0 (haishughuliwa) hadi 4 (kamilifu). Hapita kama hali ni 4, tumekuwa kufanya kazi.
Kwa nini kutumia Async=true?
Mfano wetu una tumia "true" katika kiwango cha tatu cha open().
Parameter hii inaeleza kama anafanyika kwa kina ya pengine.
True inaeleza kwamba skripti haitakaeitwa baada ya kufanya kipendekezo cha send().
Tukifanya kuzingatia kwa sababu kipindi cha onreadystatechange kinahatarisha kipindi cha programu. Kama hii ni nafasi inayohatarisha kufikia mawasiliano ya mtaalamu, hii ni mtu wa kumtaka kusafirisha.
Kuweka parameter kama "false" inafaa kumaliza kwa kipindi cha kipindi cha onreadystatechange. Kama inahitajika kufanya mambo ya kuzingatia baada ya kufaiwa kipendekezo, inafaa kutumia parameter hii.
Mafanikio mengi
Tunafanya kusoma faili ya textfile kwa kutumia div element
Tunafanya kufanya kipendekezo cha HEAD kwa kutumia XML HTTP
XML / ASP
Wewe wengiweka uharibika na uwanisha hali ya XML katika ukurasa wa ASP wa mtaalamu, tafuta juzuko hii, kisha kuwaisha mambo.
<html> <body> <script type="text/javascript"> xmlHttp=null; if (window.XMLHttpRequest) //{ code for IE7, Firefox, Opera, etc. xmlHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) //{ code for IE6, IE5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlHttp!=null) { xmlHttp.open("GET", "note.xml", false); xmlHttp.send(null); xmlDoc=xmlHttp.responseText; xmlHttp.open("POST", "demo_dom_http.asp", false); xmlHttp.send(xmlDoc); document.write(xmlHttp.responseText); } else { alert("Your browser does not support XMLHTTP."); }