2012-10-11 20 views
0

我正在做一堆從瀏覽器到服務的ajax調用,我希望對服務器不要一次全部發送。是否有序列化事件列表的觸發的標準模式,以便下一個直到最後一個完成纔會觸發?模式強制事件與jQuery的串行觸發

+1

你可以巢的成功裏面的電話。以前叫做ajax調用的回調函數,但這真的很難看,我希望看到更好的解決方案 – Gromer

+0

你可以存儲ajax參數的全局列表,然後有一個函數逐個處理它們。也就是說,函數的結果處理程序實際上可以排隊其他請求 – JeffS

+0

您可以使AJAX調用同步,但我希望你不想這樣做。似乎你需要一個AJAX隊列管理器,y你可以自己寫或使用現有的。 (谷歌)(https://www.google.com.au/search?q=javascript+AJAX+queue+manager&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox- a)出現了[AJAX Queue/Cache/Abort/Block Manager](http://webscripts.softpedia.com/script/AJAX/AJAX-Queue-Cache-Abort-Block-Manager-60972.html),肯定有成爲別人。 – RobG

回答

0

我現在用我的一個應用程序來做到這一點。基本上我有一個數組,可以存儲我所有的ajax調用參數。在回調中,我傳遞下一個增量,直到沒有更多。下面是一個普通的例子(你可以使用AJAX或當然的獲得,這僅僅是我如何做到這一點:

var params = [ 
{url : 'someurl', data : 'somedata', callback : doSomething}, 
{url : 'anotherurl', data : 'moredata'} 
], 
process = function(i) { 

    if (i < params.length) { 

     var item = params[i];  

     // Navigate to first view trainee screen 
     $.post(
      item.url, 
      item.data, 
      function(data) { 
       // Could test for function, etc but this is how I do it 
       try { 
        item.callback(data); 
       } catch (e) {} 

       process(++i); 
      } 
     ); 

    } 
}; 


process(0);