js关于localstore的应用

2 篇文章 0 订阅

接到新需求,有客户反映我们的商城首页在点进去商品详情后再返回又要重新划,特别是在分了很多页后,在返回后又要重新一页一页地上拉加载,很累。

前端是API的开发模式,所以对功能的实现有一些限制。

我的想法是:在每加载一次数据的时候,将所有的动态数据存入本地。在返回的时候先判断是否有缓存,如果有缓存就不用ajax请求接口获取数据了,直接将缓存里的数据渲染到页面,如果没有缓存再请求数据。

以下代码:

$(function(){
    if(localStorage.groups_data){
        //获取当前时间戳
        var timestamp = (new Date()).getTime();
        var data = JSON.parse(localStorage.groups_data);
        if(timestamp-data.time>expTime*1000){
            //如果缓存时间超过十分钟,则清除缓存并且重新调用
            localStorage.removeItem("groups_data")
            bindLoad(0)//绑定事件
            return;
        }
        var html = data.data;
        $(".wrap").html(html);
        bindLoad(data.page);//绑定事件
    }else{
        // console.log('无缓存')
        bindLoad(0)//绑定事件
    }

})

//分页加载成功执行的方法,在这里存入页面HTML代码
function success(){
    var timestamp = (new Date()).getTime();
    var html = $(".wrap").html();
    var groupsData = {
        "page":page,//当前页,方便在刷新之后绑定事件事传入页面
        "data":html,
        "time":timestamp//时间戳,存储的时间
    }
    //将对象序列化存储,取出时应反序列化。
    localStorage.setItem("groups_data",JSON.stringify(groupsData));

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值