在javascript中保存ajax调用之间的状态

时间:2013-03-20 19:36:02

标签: javascript jquery ajax local-storage

我想使用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上运行,或者它们会混合在一起(换句话说,错误的标识符将被分配给响应数据)?

1 个答案:

答案 0 :(得分:0)

您是否考虑过简单地创建一个数组,将其称为var cache = [],并在每次检索后添加响应数据?只需使用一些变量来跟踪您使用的最后一个索引,或者如果您想要跟踪请求的时间,请使用日期/时间,与任何响应数据分开。