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

Save state between ajax calls in javasctipt

本文关键字:之间 状态 调用 ajax javascript 保存      更新时间:2023-09-26

我想通过使用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上操作还是混合操作(换句话说,将错误的标识符分配给响应数据)?

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