前端巧用localStorage做“缓存”,减少HTTP请求次数
场景:
载入某个页面,JS需要通过ajax请求获取某些数据
那么每次刷新页面都会有请求,如果这些数据对实时性要求并不高,显然这样做并不可取。
如何减少服务端的压力,使用localStorage可以解决此问题。
//假设id是区分于其他的要储存的k值的一部分。
var flag=0,k=null,v_arr=[],v_time=0,v='';
var cday = new Date().getDate();
var k = window.localStorage.getItem('name_'+id);
if(k !== null) {
v_arr = k.split("@");
v_time = v_arr[1];
//一天过期
if(cday != v_time) {
flag = 1;
} else {
flag = 2;
v = v_arr[0];
//取到v的值,直接做该做的事情。
}
}
if(flag < 2) {
//发起请求
$.ajax(
xx,
xxx,
success:function(data) {
//存储data有效值。
window.localStorage.setItem('name_'+id,data.id+'@'+new Date().getDate());
//取到v的值,直接做该做的事情。
});
}