android - 如果用户在读取信息的时候,我们正在修改其中的数据,怎么让用户及时读到已改的信息?
怪我咯
怪我咯 2017-04-17 16:35:15
[Android讨论组]
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(6)
PHPz

应该使用观察者模式

PHP中文网

没有真正意义上的即时系统,所以,只可能是尽可能优化处理逻辑及效率,让用户察觉程序过程是一个平滑的过程。题主前边举的图片修改读取的例子并不是很恰当,既然要后台修改图片又想用户能获取修改后的图片,那这期间的等待过程是一个必须的过程,难不成你还想把不完整的或是错误的数据展现给用户?这种情况,加锁等待是正确的方式,不过也涉及到数据量大小、逻辑处理耗时的问题,实际情况还要复杂得多,网络异常超时、存储空间状况、数据加工等,

  • 在用户交互层,小量数据可加锁等待和超时处理,这应该是可接受的延迟

  • 大量数据及复杂逻辑的后台处理,可采用通知更新的方式,后台处理完了再通知交互层调用更新

做到这两点,就应该有不错的体验了。

天蓬老师

加锁,程序写入时用户不许读取

PHPz

设置一份缓存数据,然后定时更新当前修改的数据。

PHP中文网

就你题目中的问题,想要及时读到更改的信息,就必须把同步操作优化到最小的范围,在绝大部分情况下可以线程并行,在真正的读写时候才会有同步操作

高洛峰

没太看懂,直接更新用户所看到的部分不就行了吗?你的意思是不是更改了信息,用户没有重新加载页面,所以看不到?如果是这样的话,完全可以在修改信息完成后刷新UI,同步直接在操作完成后刷新,异步在callback里刷新。如果是文件,则重新载入。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号