移动端的分页缓存

原创 2016年08月30日 18:57:47

数据存储

移动端数据存储选用的是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时,如果数据量很大时前端数据展示比较慢。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android:下拉刷新,分页加载数据(服务端与客户端的的具体实现)

我们在项目开发过程中,最常用的控件就是ListView,常用的场景也就是以列表的方式显示数据,当我们的应用联网的时候,可以下拉刷新获取更多的数据; 当没有更多的数据的时候,会提醒我们没有更多数据。 这...

bootstrap table + spring + springmvc + mybatis 实现从前端到后端的表格分页

利用bootstrap table + java + spring + springmvc + mybatis 实现从前端到后端完整的分页流程  以上这些插件可以到这里下载Boots...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

android listview分页异步加载图片及图片缓存

引用 我是开发android的新手,参考了很多大牛的资料,才完成这个demo的,分享出来和大家一同学习 AsyncImageLoader.java package cn.anyc...

六,MyBatis枚举,CLOB/BLOB数据类型处理,分页,缓存

1,枚举类型处理 <result property="name
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)