0

mplify.requestを使用する場合、各呼び出しの結果を保持するためにmplify.storeを使用したいと思います。私はこのコードでこれを行うことができることを知っています:

amplify.request.define( "ajaxExample2", "ajax", {
  url: "/myApiUrl",
  dataType: "json",
  type: "GET",
  cache: "persist"
});

ただし、この結果をamplify.storeに保存されている別の変数に追加できるようにしたいと思いますが、データがキャッシュからではなくサーバーから取得された場合に限ります。

たとえば、 を最初に呼び出してからamplify.request("ajaxExample2"...、 を介して別の変数に結果を保存しますamplify.store。次に を呼び出すときにamplify.request("ajaxExample2"...、データがサーバーからのものである場合は、ローカル変数を上書きします。そうでない場合は、そのままにしておきます。

したがって、リクエストがサーバー呼び出しを行うかどうかを知り、そうであれば関数を呼び出す方法が必要です。増幅でこれを行う方法はありますか?

4

1 に答える 1

0

@swatkinsサービスを呼び出す前に、ストアにデータがあるかどうかを確認できます(キャッシュ)。それ以外の場合はサービスを呼び出す必要はありません。

例:

    var cachedData = amplify.store("anyKey");
    if (typeof cachedData === 'undefined' || cachedData.length == 0) {

        amplify.request.define("ajaxExample2", "ajax", {
            url: "/myApiUrl",
            dataType: "json",
            type: "GET",
            cache: "persist"
        });

amplify.request("ajaxExample2", 
                 function( data ) {     
                   cachedData = data.d;
                   amplify.store("anyKey", data)
                });
 }
于 2012-06-19T06:25:05.717 に答える