我在我的頁面上有幾個ajax調用,我想將它們合併成一個函數。
現在我有這種類型的功能在幾個地方:
function AjaxCallOne() {
//do something
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: TheURL,
data: "{'TheData':'" + JsonData + "'}",
dataType: "json",
cache: "false",
success:...
error:...
});
}
我想寫那將被用於所有的Ajax調用這樣一個功能:
function MyGeneralAjaxCall(TheData, TheURL, TheSuccessFunction, TheErrorFunction) {
$.ajax({ .... });
}
我問題是這樣的:如果我這樣做了,並且用戶幾乎同時發送兩個ajax調用,直到返回第一個調用的返回數據之前第二個ajax調用發生,那麼成功或錯誤函數將觸發正確的呼叫。我擔心,如果用戶在第一次調用返回之前觸發第二次調用,那麼將執行的成功函數將不適用於正確的ajax調用。
謝謝。
您可以使用['.ajaxSetup()'](http://api.jquery.com/jQuery.ajaxSetup/)將參數的默認值設置爲'$ .ajax()'。你不需要一個包裝函數 - 除非由於某種原因你不想破壞「工廠」的默認值。 – millimoose
@Inddial,爲什麼這不是答案?你會得到我的讚賞。 –
@nathangonzalez因爲它不回答OP的實際問題。在做一些可能(或可能不是)不必要的事情的時候,他只是偶然發現了這個問題。 – millimoose