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地址,判断用户所在的地区,在地址编辑界面,从服务器只获取用户所在地区的二三级地址数据,这样从服务器获取的数据量就很小了,而且可以始终获取到最新数据。
D因为直辖市、省和自治区这些一级地址区域的名称基本不会变的,所以可以把这些数据内置在APP中,在地址编辑界面,首先让用户选择一级地址区域,然后再从服务器获取所选区域的二三级地址数据,这样从服务器获取的数据量就很小了,而且可以始终获取到最新数据。
3.3.3数据的同步
数据的同步一种是单纯用时间戳判断是否更新APP本地的数据,一种是用时间戳加上数据有效期判断。
如电商APP和电商网站的购物车和收藏夹数据同步(用户可能会随时改变数据),就需要采用时间戳为判断依据;电商APP从服务器获取的商品数据有一定的时效性,为了减少和服务器的交互,就可以采用第二种方式判断是否需要从服务器更新数据。