2013-06-12 76 views
1
<!DOCTYPE html> 
<html> 
<head> 
<script> 
function loadXMLDoc() 
{ 

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

xmlhttp.onreadystatechange=function() 
    { 

    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     xmlDoc=xmlhttp.responseXML; 


     } 
    } 
    xmlhttp.open("GET","cd_catalog.xml",true); 
    xmlhttp.send(); 
}  
</script> 
</head> 
<body> 
    <script> 
loadXMLDoc(); 
    alert(xmlDoc)//dont work 

    if(xmlDoc){console.log("true")} 
    else(console.log("false")) 

    </script> 

    <div id="myDiv"></div> 

</body> 
</html> 

,如果我嘗試從人體內部訪問xmlDoc中,然後將代碼不同時工作嗎?我想知道是否xmlDoc中存在使用if內聲明的身體像:越來越XmlDocument對象

if(xmlDoc){console.log("true")} 
else(console.log("false")) 

?不過這也失敗了,即時通訊新的XMLDOM所以有什麼錯誤,我上面提出的感謝

回答

1

xmlhttp.open("GET","xmlhttp_info.txt",false); 異步發送,JavaScript的不必等待服務器響應,但可以改爲:

執行其他腳本,同時在響應等待服務器響應& 交易時準備

響應所以這就是爲什麼身體內的烏爾警告不起作用,因爲JS將繼續執行代碼的原因。 使用async = false JavaScript將不會繼續執行,直到服務器響應就緒。如果服務器很忙或很慢,應用程序將掛起或停止。

請記住,async = false不建議,但對於一些小的請求,這可以確定。