Javascript 如何避免Spotify应用程序中同步web服务调用的延迟?

Javascript 如何避免Spotify应用程序中同步web服务调用的延迟?,javascript,jquery,spotify,Javascript,Jquery,Spotify,朋友们 对于我的spotify应用程序,我正在为50首歌曲调用webservices var search = new models.Search("Rock"); search.localResults = models.LOCALSEARCHRESULTS.APPEND; search.pageSize=50; 它将收录摇滚类歌曲。 因此,对于每首歌,我都会调用3个Web服务&获得响应。 我已使web服务调用同步,因为我将响应数据存储在数组中 我正在使用来自jquery的$ajax调用 t

朋友们

对于我的spotify应用程序,我正在为50首歌曲调用webservices

var search = new models.Search("Rock");
search.localResults = models.LOCALSEARCHRESULTS.APPEND;
search.pageSize=50;
它将收录摇滚类歌曲。 因此,对于每首歌,我都会调用3个Web服务&获得响应。 我已使web服务调用同步,因为我将响应数据存储在数组中 我正在使用来自jquery的$ajax调用

type: 'GET',
url: 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=artistname&api_key=b25b959554ed76058ac220b7b2e0a026&format=json',
dataType: 'json',
timeout: 1000,
即使在提到超时变量后,它也会陷入无限等待。 有人能告诉我如何改进这个web服务调用吗

对于我的应用程序,我要记住,我的应用程序最初需要时间加载,但一旦加载,它将很快完成。
我在这里使用同步调用是因为我想在适当的索引处将值存储到数组中,以防异步调用不起作用。

我建议您避免使用同步调用。同步调用被阻塞,这对用户体验非常不利。。。特别是如果你做了3*50的请求

您总是有一种异步执行的方法。例如,您可以使用javascripts闭包在回调函数中存储选项卡索引:

var tab = [];
for (var i=0 ; i < N ; i++) {
  $.ajax({
    type: 'GET',
    url: 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=artistname&api_key=b25b959554ed76058ac220b7b2e0a026&format=json',
    dataType: 'json',
    timeout: 1000,
    success: (function(i){return function(data,textStatus,jqXHR){
      tab[i] = data;
    }})(i)
  });
}
var选项卡=[];
对于(变量i=0;i
除此之外,我发现3个调用*50首歌曲是很多AJAX调用,您的页面加载可能非常慢。。。也许你能把你的电话分解一下