2017-04-16 1 views
0

私はReactアプリケーションを開発しています。フロントエンドのAJAXリクエストではjQueryを使用していますが、角度http.get(url, {cache: true })のようにリクエストをキャッシュしたいと思います。 GETリクエストでこのグローバルキャッシングを行うのに役立つ方法はありますか? 私はcache: trueプロパティを追加しようとしましたが、動作していないようです。React jQuery AJAXグローバルキャッシング

たとえば私のコードは、私はまた、すべての要求のための

$.ajaxSetup({ 
    cache:true 
}); 

を試してみましたが、この

$.ajax(source, { 
    method: 'GET', 
    data: { 
     c: count, 
     p: period 
    }, 
    cache: true, 
    success: (response) => { 

    } 
}) 

のような、しかし、私はクロームデベロッパーツールネットワーク]タブの下で要求を見ることができますunfortunatleyだけでなく、私の中に見えますサーバーログ。 データとURLが同じ場合は、同じリクエストをしないようにしたいと思います。 自分でストレージを作成することもできますが、これを行うためのデフォルトの方法があるはずです。

ありがとうございます!

+0

使用する$に.get()は、キャッシュがあります。 – VM4

+0

しかし、 'cache:true'は動作していません。devtoolのネットワークタブでも、サーバーログでも要求を見ることができます –

答えて

0

最後の要求データが現在のものと同じかどうかをチェックする方法があります。真:

var lastRequestedData = {}; 
 
function myAjaxRequest(requestData) { 
 
    if (JSON.stringify(requestData) != JSON.stringify(lastRequestedData)) { 
 
     lastRequestedData = requestData; 
 
     alert('Makes the ajax request: '+ JSON.stringify(requestData)); 
 
     //$.ajax(...) 
 
    } 
 
} 
 

 
myAjaxRequest({"c":1,"p":2}); // Fire 
 
myAjaxRequest({"c":1,"p":2}); // Not fire 
 
myAjaxRequest({"c":2,"p":3}); // Fire