我想使用localStorage
实现从服务器数据中检索的“缓存”。请求的参数(requestData
)将成为唯一标识符。这是我的代码:
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
上运行,或者它们会混合在一起(换句话说,错误的标识符将被分配给响应数据)?
答案 0 :(得分:0)
您是否考虑过简单地创建一个数组,将其称为var cache = []
,并在每次检索后添加响应数据?只需使用一些变量来跟踪您使用的最后一个索引,或者如果您想要跟踪请求的时间,请使用日期/时间,与任何响应数据分开。