我希望正在进行的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
答案 0 :(得分:2)
最简单的解决方案是在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);
});
答案 1 :(得分:0)
使用带有async:false的ajaxSetup(),其中包含:
$.ajaxSetup(
{
data: "{}",
async false,
..whatever else you need