移动端的增量更新 - 点滴
列表中的增量更新
?
增量更新是指在服务端只提供数据,在移动端通过时间戳拉取数据,数据是无状态,在移动端做本地数据库缓存,提供UI的数据展示。
?
移动端:
1.在移动端做本地数据库缓存,首次请求 version的值为0,拉取大于0的数据
2.后面的每次请求都取数据库中最后一条记录的 updateTime的值,作为version请求数据
3.在本地UL展示,从本地缓存数据库中取数据,并作分页,列表展示
?
服务端:
1.在数据库中设置两个字段值createTime,updateTime 字段类型为 Long
2.在应用中insert时设置createTime,updateTime 值为:System.currentTimeMillis() ?精确到毫秒的值
3.在应用中update时设置updateTime,值为:System.currentTimeMillis()
4.在应用中delete时设置updateTime,值为:System.currentTimeMillis() ?数据中只记录有效状态,下此更新把删除掉的数据返回给前端,前端做本地数据库删除记录。
5.在应用中获取列表时通过移动端请求的参数version的值在数据库中查询
<if test="updateTime != null" > and <![CDATA[ update_time > #{updateTime} ]]> </if> <if test="updateTime == null"> and ref_id = 0 </if>
?
切记在updateTime为空的时候禁止获取数据,不然取的可能是重复的数据,或者是所有的数据
?
用System.currentTimeMillis()时间的好处:
1.精确到毫米级的值
2.在数据库操作比较直接比较因为都是Long类型的,如果是日期类型在数据库中还要进行各种转换,在时间戳Java中默认到毫秒,而在mysql数据库默认到秒,所以在数据库时间戳函数格式化为null,在程序中一定要除以1000
3.如果用看日期形式,也可以通过日期函数转化而看到
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。