代码拉取完成,页面将自动刷新
Install dependencies,
$ yarn
Start the dev server,
$ yarn start
http://ymssx.gitee.io/notebook/
https://gitee.com/ymssx/notebook-server/
umi + dva + antd + egg
记事本的数据持久化主要有两方面:
必须要保证 store数据 - localstorage - server端数据 三方同步
当fetch请求失败时,将当前更改请求暂存到一个栈上,同时将这个栈使用localstorage持久化存储,防止页面关闭丢失。在每次请求前,按顺序将更改请求取出进行重新请求,如果请求失败重新放回栈中。
一个优化点:可以将请求去重合并;
使用websocket,服务端被更新时主动推送给前端。
- (未做)服务端可以使用更复杂的数据结构,记录每次修改的内容以及时间戳,当服务端收到来自离线修改的更新请求时,比较更新时间戳,使新的修改覆盖旧的修改。
- (未做)服务端将来自于客户端的离线修改请求标记为离线,这些数据推送给客户端时带上离线标识,交给客户端自行解决冲突。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。