2017-04-16 100 views
0

我正在開發React應用程序和前端AJAX請求我使用jQuery,但我想緩存我的請求像角http.get(url, {cache: true })呢。 有沒有什麼辦法可以幫助我做GET請求的全局緩存? 我試圖添加cache: true屬性來請求,但它似乎不工作。React jQuery AJAX全局緩存

例如我的代碼看起來像這樣

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

    } 
}) 

我也

$.ajaxSetup({ 
    cache:true 
}); 

嘗試了所有請求,但unfortunatley我可以看到的請求下鍍鉻devtools網絡選項卡,以及在我服務器日誌。 所以我想阻止做同樣的請求,如果數據和url是相同的。 我可以自己創建一些存儲空間,但我認爲應該採用默認方式來執行此操作。

在此先感謝!

+0

使用$獲得(),它具有高速緩存:真。 – 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