3.3数据同步方案

3.3.1 文件的同步

通常图片都需要在APP端做缓存处理,所以从服务器端返回图片链接的时候,一定要同时返回图片最新修改的时间戳。APP根据本地存储图片的时间戳和从服务器获取的时间戳对比,判断是否需要更新本地缓存。

对于其余类型的数据文件,可以用时间戳,也可以用版本号做为是否更新的依据,而且最好把版本号或时间戳保存在数据文件里。

如果用户使用APP遇到和数据文件相关的问题,把数据文件从手机里导到电脑里后,打开文件根据版本号或时间戳,就很容易知道和最新的数据文件有什么不同,便于查问题。

3.3.2 地址数据的同步

因为中国的行政区域地址数据比较大,做成Json文件有400k多,压缩后也有30k多,如果用户在APP端编辑地址数据时,每次都从服务器下载这些数据,会导致客户体验不好,有以下两种解决方案:

A在服务器端和APP中都内置一个包含地址数据的Json文件,在地址编辑界面会先获取服务器端的地址 Json文件版本号或时间戳,并和本地Json文件的比较,如果一致,就启用本地的Json文件;如果不一致,就从服务器下载Json文件并覆盖本地的Json文件。

毕竟地址数据不会经常变更,这样就大大减少了从服务器获取数据的次数,改善用户体验。

B 如果APP支持定位功能或在首页会让用户选择当前所在的地区,如自动定位到上海,或用户选择了上海,则在地址编辑界面,从服务器只获取上海市的二三级地址数据,这样从服务器获取的数据量就很小了,而且可以始终获取到最新数据。

C 可以根据用户当前设备的IP地址,判断用户所在的地区,在地址编辑界面

APP开发实战10-APP数据同步方案相关推荐

  1. 低功耗蓝牙工具APP开发实战

    <低功耗蓝牙工具APP开发实战> 什么是 LightBLE? ​ 一个功能比较全面的蓝牙调试工具.支持所有使用蓝牙4.0低功耗的设备接入调试,提供蓝牙设备搜索.读取服务.浏览特征等操作. ...

  2. Hybrid App开发实战

    Hybrid App开发实战 [引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员,技术成熟度,时间,项目需求等一堆的因素.因此,开 ...

  3. Vue.js 3.0快速入门(附电影购票APP开发实战源码)

    前言 文档笔记来源:kuangshenstudy,清华大学出版社,结合视频资源食用更佳,相关资源源码在文末,有需要自取. 一.概述 Vue是什么? Vue.js是基于JavaScript的一套MVVC ...

  4. Cordova+React+OnsenUI+Redux新闻App开发实战教程-姜博-专题视频课程

    Cordova+React+OnsenUI+Redux新闻App开发实战教程-779人已学习 课程介绍         Cordova+React+OnsenUI+Redux新闻App开发实战视频培训 ...

  5. 最新仿映客直播APP开发实战项目IOS开发实战8天(最全最新)

    最新仿映客直播APP开发实战项目IOS开发实战8天 第 1 章:直播准备 1: [录播] 课程大纲介绍 09:56 2: [录播] 了解直播技术和腾讯云直播 09:54 3: [录播] 基础封装 23 ...

  6. 《HTML5移动网站与App开发实战》简介

    #好书推荐##好书奇遇季#<HTML5移动网站与App开发实战>,京东当当天猫都有发售.定价79元,网店打折销售更便宜.本书内容非常系统全面,配套示例源码与PPT课件. 本书由浅入深出.全 ...

  7. 为什么java下载安装程序很慢_【关注】微信小程序开发和APP开发的10种区别!

    在移动互联网大火的时代,APP和微信小程序已经成为了企业从移动端获取用户流量,实现盈利的重要端口. 因为微信小程序体积小,操作方便,省去了下载安装这一操作,导致这两年微信小程序的势头是越来越猛,甚至有 ...

  8. iPhone App开发实战手册

    <iPhone App开发实战手册> 基本信息 作者: (美)霍肯伯里(Hockenberry,C.) 译者: 高京 历勤勇 施迪宏 出版社:电子工业出版社 ISBN:9787121176 ...

  9. 基于数据库数据增量同步_基于 Flink SQL CDC 的实时数据同步方案

    简介:Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的 ...

最新文章

  1. 国内外常用Linux服务器控制面板介绍
  2. tensorflow常见函数——clip_by_value、numpy.random.RandomState、argmax
  3. boost::detail::lowest_bit的测试程序
  4. redis 什么是冷数据_阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂
  5. [转载]VirtualBox网络配置详解
  6. 一.hadoop入门须知
  7. 12-自动化测试框架
  8. 深度学习图像分类(十二):MobileNet系列(V1,V1,V3)
  9. flex布局兼容性问题
  10. HDLC和PPP协议的配置
  11. 天池大数据众智平台 - 数据科学家社区
  12. 热备用冷备用_个性化您的备用帐户的10种方法
  13. pytorch 入门:GPU加速,卷积层,池化层
  14. 测试软件安装可以用影子系统吗,什么是影子系统? 影子系统安装使用图文教程...
  15. MAC 部分目录作用
  16. Kerberos认证原理
  17. 国产软件漏洞分析系列2:泛微OA e-cology 8/9 安全补丁分析之file
  18. 项目 cg day06
  19. 售前技术支持工程师工作流程
  20. Mybatis 踩坑报错-第一个mybatis程序

热门文章

  1. vue组件中设置背景图片,随着页面高度的增加,背景图片能够不断延伸铺满屏幕
  2. 小程序仿微信支付键盘实现
  3. matlab画傅立叶变换后相位谱,对一幅图像进行傅里叶变换后,包含频谱(也叫幅度谱)和相位谱两部分,请问那一部分更重要?...
  4. Unity3D学习笔记12——渲染纹理
  5. Chat GPT-4,大增长时代的开始!
  6. 计算机图形学-旋转彩色正方体
  7. java验证公民身份证真实性
  8. mysql 移除权限_MySQL用户授权及删除权限
  9. IT小小鸟--我在南大的7年
  10. Nginx的基本使用