0

を使用してサーバーデータから取得するための「キャッシュ」を実装したいと思います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か、それとも混合されますか(つまり、応答データに間違った識別子が割り当てられます)?

4

1 に答える 1

0

単純に配列を作成し、それを次のように呼び出し、var cache = []取得するたびに応答データを追加することを検討しましたか?変数を使用して最後に使用したインデックスを追跡するか、要求がいつ行われたかを追跡する場合は、応答データとは別に日付/時刻を使用します。

于 2013-03-20T20:01:37.190 に答える