您的位置:首页 > Web前端 > AngularJS

利用angular+cordova实现离线存储,上线同步的技术分析

2020-03-20 12:13 681 查看

采用angular+primeng+splite开源框架实现PC\移动\平板完全自适应的新系统。

  1. 实现目标:
  • 多设备自适应功能:所有的功能点设计都要照顾到在PC/平板/手机上面展示的效果。
  • 离线数据保存功能:
    增加离线/在线状态提示:
    离线状态:在网络不稳定的情况下,自动开启离线数据功能(前台提示已开启离线模式),关键数据在网络良好的提前同步保存到本地splite数据库,离线订单等信息保存到本地库。
    在线状态:在网络状态良好的情况下,检测信号质量连续良好10秒以上,提示“网络状态正常”,数据自动同步,此时用户的实际操作涉及到的数据表正好正在同步操作时,提示“数据正在同步,请稍后再操作该功能”,后台开启多线程同步的表数据。

2、关键离线技术方案:
splite数据库
progress web app
用户首次登录且离线数据库没有数据时必须联网,通过接口认证通过后,服务端自动开启推送关键数据表到本地数据库(本地数据库记录上次数据推送时间);用户界面显示“数据更新中,请稍后”;用户不管联网还是断线保存的数据都是在本地,联网状态操作时,后台立即推送该数据到服务端,断网时,定时检测推送。(websocket或者MQ)

  • 离线数据存储技术
    SQLite是一款轻型的数据库,支持Windows/Linux/Unix等等主流的操作系统、CppSqLite对SQLite的API进行了一次封装,让开发人员更加方便的使用SQLite。
    统一存储json数据。
  • 自动重传
    在联网的情况下定时器按时轮询检查SQLite数据库,如果存在数据则自动重发上传,避免传输失败后数据的丢失.

  • 数据上传
    最好统一存储json数据,采用MQ中间件系统分离解耦客户端和服务端,数据先上传到MQ,避免客户端上传产生等待,提升客户端响应速度,已上传成功的信息本地更新上传时间。

  • 数据同步
    基础表数据自动同步到本地,如:用户表(离线登录验证)、基础档案表(离线选择货品)及其它涉及到离线的数据表。后台通过MQ自动同步这些表的数据,

3、增加APP离线数据管理后台

  • 可以配置推送指定数据到APP离线数据库(如:用户登录表、货品档案、本次待定货档案等数据,也可以是自定义SQL数据),如果连接MQ的话,可以先推送到MQ队列;等待APP上线后自动更新数据。
  • 可以配置APP离线数据需要推送哪些数据过来,插入到哪些表中
  • 点赞
  • 收藏
  • 分享
  • 文章举报
berlinchans 发布了5 篇原创文章 · 获赞 0 · 访问量 301 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐