React JQuery Ajax全球缓存



我正在开发React应用程序,并且对于前端AJAX请求,我使用jQuery,但是我想像Angular http.get(url, {cache: true })一样缓存我的请求。有什么办法可以帮助我做这个全球缓存以获取请求。我尝试将cache: true属性添加到请求中,但似乎不起作用。

例如,我的代码看起来像

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

我也尝试过

$.ajaxSetup({
    cache:true
});

对于所有请求,但是不幸的是,我可以在Chrome DevTools网络选项卡下以及我的服务器日志中看到请求。因此,如果数据和URL相同,我想防止执行相同的请求。我可以自己创建一些存储空间,但我认为应该有默认方法来执行此操作。

预先感谢!

一种方法可以检查最后一个请求数据是否与当前的数据相同。

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

最新更新