2013-12-10 67 views
3

我想用ajax向php發起一些請求。我不需要這些響應,並希望在發送後立即終止ajax請求。這樣我就可以觸發更多的ajax調用,而不會觸及6個Ajax調用限制。我GOOGLE了這一點,沒有任何選項似乎工作。jquery ajax消防和忘記

我試過使用.abort()命令,但它會在達到php之前終止請求。

這是什麼最好的方法?

基本上我想運行這段代碼,並讓ajax響應立即返回或者將它關閉,而另一端的php函數繼續處理。

$.ajax({ 
    type: "GET", 
    url: "api/v1/restart/" + val, 
    success: function(xhr) { 
    } 
}); 

我不需要回應我只是想讓它啓動PHP函數。

+0

問題沒有寫得很有道理。也許看看[WebSockets](https://developer.mozilla.org/en-US/docs/WebSockets),看看你的代碼嘗試和擴展的說明 – charlietfl

+0

? –

+0

我目前使用websockets從我的php函數返回數據。我需要一些東西來啓動api調用,這就是爲什麼我使用ajax。 – arrowill12

回答

0

將此添加到ajax調用的參數列表中。也可以讓你的PHP請求異步

async: true 
3

例如:請求test.php頁面,但忽略返回結果。

$.get("api/v1/restart/" + val); 

例如:請求test.php頁面,但忽略返回結果,那麼簡單!

http://api.jquery.com/jQuery.get/

,如果你想繞過最大的呼叫限制只使用.queue()

http://learn.jquery.com/effects/uses-of-queue-and-dequeue/

+0

你能舉出一個如何使用隊列的例子嗎?這正是我的問題,我被限制爲6,所以我想ajax返回,所以另一個可以開始。 – arrowill12

+0

如果您發現我的答案正確,請將其標記爲正確答案,ty – ProllyGeek

0

只是爲了讓排隊的答案明確,病因張貼在評論將不清晰:

//對一個空物體的jQuery,我們打算用這個作爲我們的隊列

var ajaxQueue = $({}); 



$.ajaxQueue = function(ajaxOpts) { 
    // Hold the original complete function. 
    var oldComplete = ajaxOpts.complete; 

    // Queue our ajax request. 
    ajaxQueue.queue(function(next) { 
     // Create a complete callback to fire the next event in the queue. 
     ajaxOpts.complete = function() { 
      // Fire the original complete if it was there. 
      if (oldComplete) { 
       oldComplete.apply(this, arguments); 
      } 
      // Run the next query in the queue. 
      next(); 
     }; 

     // Run the query. 
     $.ajax(ajaxOpts); 
    }); 
};