XMLHttpRequest ¶ÔÏó
XMLHttpRequest ¶ÔÏóÓÃÓÚÔÚºǫ́Óë·þÎñÆ÷½»»»Êý¾Ý¡£
ʲôÊÇ XMLHttpRequest ¶ÔÏó£¿
XMLHttpRequest ¶ÔÏóÓÃÓÚÔÚºǫ́Óë·þÎñÆ÷½»»»Êý¾Ý¡£
XMLHttpRequest ¶ÔÏóÊÇ¿ª·¢ÕßµÄÃÎÏ룬ÒòΪÄúÄܹ»£º
- ÔÚ²»ÖØÐ¼ÓÔØÒ³ÃæµÄÇé¿öϸüÐÂÍøÒ³
- ÔÚÒ³ÃæÒѼÓÔØºó´Ó·þÎñÆ÷ÇëÇóÊý¾Ý
- ÔÚÒ³ÃæÒѼÓÔØºó´Ó·þÎñÆ÷½ÓÊÕÊý¾Ý
- ÔÚºǫ́Ïò·þÎñÆ÷·¢ËÍÊý¾Ý
ËùÓÐÏÖ´úµÄä¯ÀÀÆ÷¶¼Ö§³Ö XMLHttpRequest ¶ÔÏó¡£
ÈçÐèѧϰ¸ü¶àÓÐ¹Ø XMLHttpRequest ¶ÔÏóµÄ֪ʶ£¬ÇëѧϰÎÒÃÇµÄ XML DOM ½Ì³Ì¡£
´´½¨ XMLHttpRequest ¶ÔÏó
ËùÓÐÏÖ´úä¯ÀÀÆ÷ (IE7+¡¢Firefox¡¢Chrome¡¢Safari ÒÔ¼° Opera) ¶¼ÄÚ½¨ÁË XMLHttpRequest ¶ÔÏó¡£
ͨ¹ýÒ»Ðмòµ¥µÄ JavaScript ´úÂ룬ÎÒÃǾͿÉÒÔ´´½¨ XMLHttpRequest ¶ÔÏó¡£
´´½¨ XMLHttpRequest ¶ÔÏóµÄÓï·¨£º
xmlhttp=new XMLHttpRequest();
Àϰ汾µÄ Internet Explorer £¨IE5 ºÍ IE6£©Ê¹Óà ActiveX ¶ÔÏó£º
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
Ìáʾ£ºÔÚÏÂÒ»Õ£¬ÎÒÃǽ«Ê¹Óà XMLHttpRequest ¶ÔÏó´Ó·þÎñÆ÷È¡»Ø XML ÐÅÏ¢¡£
ʵÀý 1
<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 // ...our code here... } else { alert("Problem retrieving XML data"); } } } </script>
×¢ÊÍ£ºonreadystatechange ÊÇÒ»¸öʼþ¾ä±ú¡£ËüµÄÖµ (state_Change) ÊÇÒ»¸öº¯ÊýµÄÃû³Æ£¬µ± XMLHttpRequest ¶ÔÏóµÄ״̬·¢Éú¸Ä±äʱ£¬»á´¥·¢´Ëº¯Êý¡£×´Ì¬´Ó 0 (uninitialized) µ½ 4 (complete) ½øÐб仯¡£½öÔÚ״̬Ϊ 4 ʱ£¬ÎÒÃDzÅÖ´ÐдúÂë¡£
ΪʲôʹÓà Async=true £¿
ÎÒÃǵÄʵÀýÔÚ open() µÄµÚÈý¸ö²ÎÊýÖÐʹÓÃÁË "true"¡£
¸Ã²ÎÊý¹æ¶¨ÇëÇóÊÇ·ñÒì²½´¦Àí¡£
True ±íʾ½Å±¾»áÔÚ send() ·½·¨Ö®ºó¼ÌÐøÖ´ÐУ¬¶ø²»µÈ´ýÀ´×Ô·þÎñÆ÷µÄÏìÓ¦¡£
onreadystatechange ʼþʹ´úÂ븴ÔÓ»¯ÁË¡£µ«ÊÇÕâÊÇÔÚûÓеõ½·þÎñÆ÷ÏìÓ¦µÄÇé¿öÏ£¬·ÀÖ¹´úÂëÍ£Ö¹µÄ×ȫµÄ·½·¨¡£
ͨ¹ý°Ñ¸Ã²ÎÊýÉèÖÃΪ "false"£¬¿ÉÒÔʡȥ¶îÍâµÄ onreadystatechange ´úÂë¡£Èç¹ûÔÚÇëÇóʧ°ÜʱÊÇ·ñÖ´ÐÐÆäÓàµÄ´úÂëÎ޹ؽôÒª£¬ÄÇô¿ÉÒÔʹÓÃÕâ¸ö²ÎÊý¡£
XML / ASP
ÄúÒ²¿ÉÒÔ°Ñ XML Îĵµ´ò¿ª²¢·¢Ë͵½·þÎñÆ÷É쵀 ASP Ò³Ãæ£¬·ÖÎö´ËÇëÇó£¬È»ºó´«»Ø½á¹û¡£
<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."); } </script> </body> </html>
ASP Ò³Ãæ£¬ÓÉ VBScript ±àд£º
<% set xmldoc = Server.CreateObject("Microsoft.XMLDOM") xmldoc.async=false xmldoc.load(request) for each x in xmldoc.documentElement.childNodes if x.NodeName = "to" then name=x.text next response.write(name) %>
ͨ¹ýʹÓà response.write ÊôÐ԰ѽá¹û´«»Ø¿Í»§¶Ë¡£
XMLHttpRequest ¶ÔÏóÊÇ W3C µÄ±ê×¼Âð£¿
ÈκΠW3C ÍÆ¼ö±ê×¼¾ùδ¹æ¶¨ XMLHttpRequest ¶ÔÏó¡£
²»¹ý£¬W3C DOM Level 3 µÄ "Load and Save" ¹æ·¶°üº¬ÁËһЩÏàËÆµÄ¹¦ÄÜÐÔ£¬µ«ÊÇ»¹Ã»ÓÐÈκÎä¯ÀÀÆ÷ʵÏÖËüÃÇ¡£