use*_*999 1 javascript ajax caching http
现在,我通过ajax将请求发送到后端服务器,该服务器执行一些操作并返回响应:
function getData() {
new Ajax().getResponse()
.then(function (response) {
// handle response
})
.catch(function (error) {
// handle error
});
}
Run Code Online (Sandbox Code Playgroud)
事实是,每次用户刷新网站时,都会再次发送每个请求。我一直在考虑将它们缓存在本地存储中:
function getData() {
if (Cache.get('getResponse')) {
let response = Cache.get('getResponse');
// handle response
return true;
}
new Ajax().getResponse()
.then(function (response) {
// handle response
})
.catch(function (error) {
// handle error
});
}
Run Code Online (Sandbox Code Playgroud)
这样,如果用户已经发出请求,并且响应被缓存在localStorage内部,则不必从服务器获取数据。如果用户更改的值,则getResponse只需清除缓存。
这是一个好方法吗?如果是,是否有更好的方法可以做到这一点?另外,是否应该以相同的方式缓存后端响应?前端和后端缓存之间有什么区别?
这是一个好方法吗?这取决于您要存储哪种数据
请注意,用户可以更改前端存储的所有内容,因此这是潜在的安全漏洞。
这是后端缓存与前端缓存之间的主要区别,用户无法编辑后端缓存。
如果您决定进行前端缓存,则下面是执行代码的代码:
localStorage.setItem('getResponse', JSON.stringify(response));
Run Code Online (Sandbox Code Playgroud)
用于从本地存储中检索存储的数据
var retrievedObject = localStorage.getItem('getResponse');
Run Code Online (Sandbox Code Playgroud)
注意:
我假设您存储的对象不是字符串或整数。如果要存储字符串,整数,浮点数...只需删除JSON.stringify
| 归档时间: |
|
| 查看次数: |
3636 次 |
| 最近记录: |