jQuery的不更新元素值

时间:2018-08-08 16:18:10

标签: javascript jquery loading

那是我的javascript:

<script>
 $('#DIVID01').text("Loading...");
 var Httpreq = new XMLHttpRequest(); 
 Httpreq.open("GET", 'http://httpbin.org/ip', false);
 Httpreq.send(null); 
 $('#DIVID01').text("Done");
</script>

当我逐行调试时,以下代码显示了DIVID01的第一个更改,但在调用此函数时未调试,则需要2到3秒钟才能结束,并且屏幕上仅显示单词“ Done”。问题是第一行代码似乎不适用于此申请。

1 个答案:

答案 0 :(得分:1)

XMLHttpRequest是一个异步请求,js不会等待响应。它将触发异步请求,在这种情况下,$('#DIVID01').text("Done");将立即移至下一行,并更新DOM。但您的情况是,期望收到响应后,dom将更新为“ done”。

由于您已经在使用jquery,希望您不介意使用jquery.ajax;和

$.ajax({
  url:"some url",
  type:"GET",
  success:function(){
    $('#DIVID01').text("Done");
  }
})