我想通過使用localStorage
來實現從服務器數據檢索「緩存」。請求參數(requestData
)將成爲唯一標識符。這裏是我的代碼:保存javasctipt中的ajax調用之間的狀態
App = {};
App.Service = function(name) {
this.name = name;
};
App.Service.prototype.sendRequest = function(requestData) {
// process request data somehow and store to local variable
var identifier = $.param(requestData);
$.ajax({
url: 'web/api',
success: function(data) {
// can identifier differ from calculated before ajax call?
// for example if someone else start this method in the same time?
localStorage.setItem(identifier, data);
},
error: function(jqXHR, textStatus, errorThrown) {
// handle error
},
type: "POST",
data: requestData
});
};
這裏是我的問題:假設我已經多次啓動sendRequest方法。每個success
回撥方法是否都在自己的identifier
上操作,否則它們會混合(換句話說錯誤的標識符將被分配給響應數據)?
你不需要擔心Ajax調用之間的數據混亂,因爲每個sendRequest()調用都會創建自己的本地'標識符'變量,這個變量綁定到成功/錯誤回調函數的閉包。 – accme 2013-03-20 20:15:22
謝謝。我不知道(我甚至沒有想過),每個函數的調用創建它自己的地址空間:( – 2013-03-20 20:35:10