2012-02-01 89 views
0

我有一大堆的AJAX請求的,第一個是AJAX請求舉起AJAX的頁面REST調用

$.post("go.php", { url: pastedURL, key: offskey, mo: 'inward', id: exID}); 

這一要求,在go.php包括系統命令,儘管的nohup&最後,不停地在Firebug上旋轉 - 等待響應。

不幸的是,接下來的AJAX請求

$.post("requestor.php", { request: 'getProgress', key: offskey}, function(data) { console.log(data.response); }, "json"); 

不運行,它週轉輪螢火(我猜,直到go.php已完成) - 它最終重載一切(這是一個計時器每隔幾秒檢查一次)。

所以我想問題是,有沒有一種AJAX方法,它只是拋出數據並走開,而不是等待響應......或者某些情況下,我可以執行另一個請求,而另一個正在等待。

希望有人知道我的意思。

回答

0

有瀏覽器使用的連接數量有限。這個數字因瀏覽器而異,但對於像IE7這樣的老版本來說,每個服務器可以少至2個連接。一旦你填充待處理的請求,你必須等待這些完成,然後才能向該服務器發出任何其他請求。

(這是一個定時器,每隔幾秒鐘檢查)

聽起來好像已經完成,你可以使以前的前使用的setTimeout或setInterval的額外requestor.php請求?如果是這樣,不要這樣做。使用一個完整的$ .ajax(也許還有一個超時),並在成功/錯誤回調中,然後再發出另一個請求。

1

檢查async: false,作爲參數jQuery中$.ajax()方法。

你需要用它來進行設置async: true

1

原來在另一端的PHP請求,將需要這一點是爲了與等待着手: -

"> /dev/null 2>/dev/null &" 

source