2017-09-04 106 views
-1

你能解釋一下這些代碼塊之間的區別嗎?我很困惑的JavaScript執行順序

我不明白!


$('document').ready(function(){ 
     var str; 

     var request= new XMLHttpRequest(); 
     request.open('get','http://localhost:8080/new/text.jsp',true); 
     request.onload=function(){ 
      str=request.responseText; 

     }; 
     request.send(); 
     $('h1').text(str); 
    }); 

$('document').ready(function(){ 
    var str; 

    var request= new XMLHttpRequest(); 
    request.open('get','http://localhost:8080/new/text.jsp',true); 
    request.onload=function(){ 
     str=request.responseText; 
     $('h1').text(str); 
    }; 
    request.send(); 
}); 

回答

1

這是因爲Ajax請求(XMLHttpRequest的)執行異步。 onload函數在獲得響應時觸發。在響應中,您需要檢查狀態碼和響應碼。

第一段代碼。不等待響應,只是將str放入h1。第二段代碼等待請求處理,當你得到響應時,它將使用該代碼到h1