2017-09-04 108 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