jQuery:可以在继续之前等待$ .get完成加载吗?

sim*_*son 24 javascript jquery json loops

在继续循环之前,下面的脚本不会等待$ .get完成加载页面:

$.each(data.songs, function(index, val) {
    $('#nowartist')
         .append('song starting');
    $.get("http://localhost/play.php", function(data){
         alert('done');
    });
});
Run Code Online (Sandbox Code Playgroud)

data是一个JSON对象

任何想法或意见将不胜感激.

jar*_*oal 59

$.ajax({
     async: false,
     type: 'GET',
     url: 'http://localhost/play.php',
     success: function(data) {
          //callback
     }
});
Run Code Online (Sandbox Code Playgroud)

应该这样做.

http://docs.jquery.com/Ajax/jQuery.ajax#options

  • 正如OP所知,从上面的链接:"请注意,同步请求可能会暂时锁定浏览器,在请求处于活动状态时禁用任何操作." (4认同)
  • 这有效,但也在我的Chrome浏览器中发出警告:```pace.min.js:2 [Deprecation]主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请查看https:// xhr.spec.whatwg.org/.```.显然这是因为设置`async:false`.任何可以删除此警告的替代方案的想法? (2认同)