我正在开发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