2017-09-04 4 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関数は、応答を受け取ったときにトリガーされます。レスポンスでは、ステータスコードとレスポンスコードを確認する必要があります。

最初のコードです。応答を待つのではなく、ただstrh1に入れます。 2番目のコードは要求の処理を待機し、応答を受け取るとそのコードをh1に使用します。

関連する問題