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" ¹æ·¶°üº¬ÁËһЩÏàËÆµÄ¹¦ÄÜÐÔ£¬µ«ÊÇ»¹Ã»ÓÐÈκÎä¯ÀÀÆ÷ʵÏÖËüÃÇ¡£