AJAX请求 JSON数据并实现本地缓存

本文主要介绍通过ajax请求json数据,并实现数据的本地存储,以下面的实例为例:
  • 请求新闻列表时判断ajax请求是否成功
  • 请求失败读取本地缓存信息,请求成功是判断res.code
  • 当res.code不为1000000时依旧读取缓存,否则更新页面数据并更新缓存
  • 以下为部分代码
$('.nowDay').html(date);
    var detailUrl = 'sentiment/index.php/news/today-news/list';
    var url = _baseUrl_ + detailUrl;
    $.ajax({
        url: url,
        data:{
            day:date
        },
        type: "GET",
        dataType: 'jsonp',
        jsonp: 'callback',
        jsonpCallback: "listDataRender",
        success: function (res) {
            if(res.code == 1000000){
                // 序列化转化成json字符串
                localStorage.setItem('res',JSON.stringify(res));
                console.log(res.list)
            }
        },
        error: function () {
            console.log('1111')
            // 判断本地是否有缓存
            if(localStorage.getItem('res') == null || localStorage.getItem('res') == undefined) {

                console.log(localStorage.getItem('res'))
                alert('您的网络出现异常,请稍后再试!')
            }
            else {
                res = localStorage.getItem('res')
                listDataRender(res)
            }
            // alert('您的网络出现异常,请稍后再试!')
        }


    })


}

function listDataRender(res) {


    if (res.code == 1000000) {
        _newsAll_ = [].concat(res.list);
        if (_newsAll_.length >= _pageNumber_) {
            renderList(_newsAll_.splice(0, _pageNumber_),true);
        }
        else {
            isOver=true;
            renderList(_newsAll_,false);
        }
        $('.allNum').html(res.list.length);

    }
    else {
        //反序列化 将字符串转化成json对象
        res = JSON.parse(localStorage.getItem('res'))
        // console.log(res)
        _newsAll_ = [].concat(res.list);
        // console.log(_newsAll_)
        if (_newsAll_.length >= _pageNumber_) {
            renderList(_newsAll_.splice(0, _pageNumber_),true);
        }
        else {
            isOver=true;
            renderList(_newsAll_,false);
        }
        $('.allNum').html(res.list.length);
        // alert('您网络异常,请稍后再试!')
    }


}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值