更新LocalStorage的方法技巧

1 篇文章 0 订阅
1 篇文章 0 订阅

目前项目中需要使用ajax获取后端数据后展示出来,由于返回的数据量较大,考虑前端获取数据后使用LocalStorage进行浏览器本地存储数据,这样当客户再次打开页面的时候先检测本地LocalStorage中是否存在数据,如数据存在便直接从本地读取而不再发起Ajax请求后端,可以提高页面加载速度并减轻服务器带宽压力。

想法很美好,花了十几分钟也就搞好了,但是问题来了,由于LocalStorage是永久本地化存储,用户第一次打开页面的时候从后端请求到数据并存储起来,以后再次打开便不在从后端请求数据,如果后端更新了数据,如追加/删除了数据,用户就无法看到最新的数据,想了一会,准备使用类似版本号的方法来解决。

目前改造如下:第一次请求数据的时候,数据中包含个版本号(后端mysql查询的时候使用最最近一次更新数据时的UNIX时间戳来当版本号),前端获得数据的时候将版本号新建LocalStorage KEY和VALUE来保存(“ver” “1552908845”) ,当用户以后再次打开页面的时候先检测LocalStorage中是否存在ver,如存在则先请求一次后端获取最新更新的时间戳和ver储存的进行比对,如不一致则重新请求后端数据覆盖当前数据,如一致则直接使用LocalStorage中的数据

如此改造后多了一次用于获得版本号的ajax请求,只不由于只请求个版本号,数据量非常小可以忽略不记。这样算是解决了吧。

PHP API部分代码示例
PHP API部分

前端请求部分代码示例
前端判断请求部分

浏览器Local Storage的存储情况
浏览器中Local Storage存储情况

本文由 www.UE4.net 原创提供 黄韬 QQ:95606117,转载请注明

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值