订购Ajax调用
我希望正在按特定顺序进行的ajax调用,让我使用一些代码进一步解释。
var feed_urls = [ 'URL_1', 'URL_2', 'URL_3', ... ... 'URL_N', ];
我正在使用jquery的getJSON
方法进行ajax调用
$.each(feed_urls,function(index,value){ $.getJSON(value, function(data) { $.each(data.feed.entry,function(i,val){ LIST.push(val.content.src); }); }); });
我面临的问题是,由于ajax调用是异步的,因此LIST
的内容并不总是以相同的顺序。 反正有没有解决这个问题?
ajax调用的首选顺序是URL_1
后跟URL_2
后跟URL_3
,依此类推,直到URL_N
使用ajaxSetup()和async:false,在其中:
$.ajaxSetup( { data: "{}", async false, ..whatever else you need
最简单的解决方案是在URL1完成后才启动URL2请求:
function get(n,callback) { if (n == feed_urls.length) callback(); $.getJSON(feed_urls[n], function(data) { $.each(data.feed.entry,function(i,val){ LIST.push(val.content.src); }); get(n+1,callback); }); } get(0,function(){ // This is called when all lists have been loaded. alert(LIST); });