2012-04-20 7 views
0

amplify.requestを使用する場合は、amplify.storeを使用して各呼び出しの結果を保持します。しかし、私はamplify.storeで保存された別の変数に、この結果を追加できるようにしたいのですが、データがサーバーから来ている場合にのみamplify.requestキャッシュを制御する方法:永続オプション

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

と:私は、私はこのコードでこれを行うことができます知っていますキャッシュからではありません。

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

私は、リクエストがサーバコールをするかどうかを知り、そうであれば関数を呼び出す方法が欲しいと思います。増幅でこれを行う方法はありますか?

答えて

0

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

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) 
       }); 
} 
+0

これは(私はそれを書いていたとして)私の質問に答えるので、受け入れられたように私はあなたの答えをマークしました。しかし、私は1分後にキャッシュを期限切れにしたいと言っていたはずです。私は、増幅リクエストが、最初のロードだけでなく、ページロード中のさまざまな時にキャッシュまたはサーバーからデータを取得しているかどうかを調べる方法を探しています。 – swatkins

関連する問題