目前实现的功能:
未登录的时候,将 todo 保存在浏览器的本地存储 IndexedDB 中,登录后,将 todo 保存在服务器端的 SQLite 数据库中。登录用的是 SSO 单点登录。
目前遇到一些问题:
- 登录后未把浏览器里的本地 todo 上传并合并到服务器 sqlite 里。
- 不同设备/浏览器上都登录,但是一个上面的修改无法自动反映在另一个浏览器上,需要在其他浏览器上进行刷新。我想知道怎样实现修改 todo 后,服务器向其他登录的设备传递消息,命令其进行更新数据的操作。或者怎样实现在后台每隔一段时间自动从服务器拉数据,检测是否最新以决定是否要刷新界面。
- 有些时候网络较差,而操作需要得到服务器端成功的响应才刷新界面,导致操作卡顿,怎样实现先在浏览器的 IndexedDB 里储存,在后台异步进行数据同步,并在同步成功/失败时提示。
先谢谢門友們。
这个有点点意思,我随手用你站的服务器和域名部署了一个:
https://todo.xjtu.app
4 Likes
Zerick
3
只写过后端,来口胡一两句吧。
其实你已经把解决方案说出来了
问题 1 简单实现就是在后端记录上次同步的时间戳,同步的时候把时间戳以后的更改全发给后端就行了。
问题 2 就是后端主动向前端推流的问题,这种场景 SSE 绝对够用了
问题 3 就是把你描述的东西实现出来就可以了,因为没看你代码不知道问题出在哪里,说不定要稍微改一下流程什么的
祝顺利
2 Likes
最近对 app 做了一些改进:
- 优化了用户界面,看起来更现代
- 离线时可用,重新在线后自动同步数据到服务器
- 后台定时同步数据,在其他设备上无需手动刷新,稍等几秒即可
欢迎門友加入开发,提 Issue 和 PR
本来按照我的习惯,应该列一些计划增加的功能.
但我受 Jensen Huang 不带手表影响,活在当下,不做未来的规划
5 Likes