队列jQuery AJAX调用

问题描述:

嘿,我试图抓住总页数,然后从每个页面抓取item_id。我的代码可以工作,但不是每个ajax请求都在最后一个之后触发,而是全部运行。我怎样才能呼叫排队所以每次调用get_page_items然后get_item由1队列jQuery AJAX调用

function scraperFunction() 
{ 
    $.get('./scraper/get_total_pages', { type: 'movie' }, function(data) 
    { 
     total_pages = data; 
     total_items = total_pages * 6; 

     for(page=1;page<=total_pages;page++) 
     { 
      $.get('./scraper/get_page_items', { type: 'movie', page: page }, function(json) 
      { 
       $.each(json, function(key, item_id) 
       { 
        $.get('./scraper/get_item', { item_id: 'item_id' }); 
       }); 
      }, 'json'); 
     } 
    }); 
} 

称为1可以使用Ajax Queue插件,或者use jQuery's built in queue support

可以使用async: false选项$.ajax要求

$.ajax({ 
    url: './scraper/get_page_items', 
    data: { type: 'movie', page: page }, 
    async: false, 
    dataType: 'json', 
    success. function(json){ 
     .... 
    } 
}) 
+0

@biccio,这可以阻止用户界面完全地... – kobe 2011-04-26 21:44:58

+0

是,UI被阻塞,直到抢函数结束......有时,这是不是一个真正的问题... – bicccio 2011-04-26 21:49:08