有这样一个例子,一个程序修改个人资料的性别,现在是修改性别,点击确定,就得传到服务器,但是如果网络比较差,就会出现 loading,或者就干脆失败。
但是我作为交互设计师,我认为这个修改对整个程序重要程度不是很大,就是传到服务器的实时性不是很大,没必要修改的当下,就必须要传到服务器。就像在玩游戏的的时候修改游戏的设置,游戏结束后或闲置的时候,把设置同步到云;或者说类似 chrome 的书签,保存书签的时候,我想必不是一下子就必须要同步上去吧,没网就不让保存书签。所以它应该是一种类似同步的机制,那么其实整个程序,可能会有很多地方需要用到类似的这种机制,所以这个机制有没什么专有名词?可以让开发或者我学习其背后程序的逻辑,比如是怎么判断哪边信息是最新的,或者什么实际上传数据等等。
1
zgcwkj 2019-04-23 15:11:05 +08:00 1
你可以了解以下 git,svn 之类的工具,他们是怎么实现的
|
2
learnshare 2019-04-23 15:32:19 +08:00 1
是在讲两件事:一件是非实时的数据传输,另一件是数据同步及一致性。
---- 具体名字并不清楚,但算是比较常见的数据同步机制。 比如浏览器的书签和数据同步,本地和服务器上有且必须有完全相同的数据。 本地对书签记录进行某个操作(添加、修改或删除)之后,将这个操作及相关数据发送到服务器。服务器对数据进行完全相同的操作,这样两边就是同步的(数据一致)。 简单的情况是:一端产生了某个动作,这个动作包括时间戳、操作对象、操作类型及相关数据等信息,将这个动作传递给另一端,进行完全一致的数据操作。 复杂的情况下,需要考虑多端对同一个数据进行操作时会发生冲突(比如客户端和网页同时修改和保存个人资料),需要自动处理冲突的内容。 |
3
lindongwu11 2019-04-23 21:11:18 +08:00
这个叫「积极更新」,或者「乐观更新」,英文是 Optimistic Update。
当然一般不会等这么久才上传,一般乐观更新是等一两秒发现网不好更新失败就回滚并在 UI 上做出提示。 |
4
CSGO OP 谢谢大家,都惯例打闪了。
|