移动端的分页缓存

数据存储

移动端数据存储选用的是localStorage,HTML5中新增的API,localStorage特点: 

1) 永久存储,除非手动删除。

2) 通过key,value进行存储,用法简单,无需下载插件。

3) 只能存字符串。可以通过JSON.stringify将对象转化为字符串,再通过JSON.parse将字符串转化为对象。

4) 存储容量上限:10M。

5) 同步存储数据。


分页问题

假如分页缓存的数据大小为100条,服务器总共有0-1000条数据,本地缓存了500-0条,当下拉刷新获取服务器1000-900条,上拉加载继续从服务器中获取900-800,800-700,700-600,此时从服务器中获取的数据与本地存储的数据在一个时间轴上,没有数据丢失。假如上拉加载到900-800条数据时断网了,下次下拉刷新从服务器中又获取最新的1100-1000条,本地缓存中会有800-700,700-600的数据丢失,长期以往,本地缓存没有把旧的数据衔接上,导致前端展示会有数据丢失。

移动端缓存

为了解决上述问题,在server端写分页缓存服务,每个item数据都有对应的时间:theLastUpdateTime,当item有状态改变,更新这个时间theLastUpdateTime为当前时间,根据所有item的theLastUpdateTime时间字段进行由大到小排序(最前面显示的是最新的数据),有一个总的属性:theLastUpdateTime更新为最新数据中的theLastUpdateTime时间。 接口需要传的参数:id,startDate,endDate。

移动端第一次从server端拿数据是将server端所有数据缓存到本地,并将theLastUpdateTime存储下来作为下一次请求server的startDate,下次请求时获取server端有数据更新的数据,并将本地缓存的数据进行替换,这样也解决了数据实时更新问题。

这种方式的优势:时间轴上不会有数据的丢失。

劣势:当第一次访问server时,如果数据量很大时前端数据展示比较慢。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值