如何实现在线数据的离线浏览和修改
2006-08-12 06:39
573 查看
昨天,老总提出来这样一个需求,如果用户在网络中断的时候,如何还能够继续操作他职能范围内的数据,然后等网络开通之后,将修改后的数据在上传到服务器。在这样的过程中,会出现以下情况,员工A和员工B同时负责一个职能,他们对数据具有相同的访问能力,或者B比A访问能力大,A和B在离线的时候,保存在各自本地的是数据的同一个版本,A首先更新了这个版本,然后上传到服务器,这时候,如果B也是离线修改,需要将结果上传到服务器的时候,上传会失败,但非常可能的情况是B的数据才是最后想要的,这时候怎么办?
离线浏览和离线修改的解决方案为每次关闭前,将最后用户所操作的数据,序列化成DataSet,然后作一个离线浏览器,这个从技术上来说并不困难,困难的就是增加了上述问题。昨天第一次提出这样的问题,首先就想到了版本控制软件,解决之道,第一种,是采用数据独占的方式 ,即“严格锁”,只要一份数据被人下载到客户端,就将服务器端该数据冻结起来,不让其受到其他人的修改,但其他人可浏览。第二种方法为类似cvs的“乐观锁",就是服务器端不进行锁定,假如A修改了数据,这时候B再更新,服务器首先检查服务器端数据版本和本地数据版本是否一样,一样说明之前没有人修改,直接上传,不一样,通过日志,查找最后修改该数据的人,二人进行协商,最后确定结果。
通过数据固定化和乐观锁,应该能解决离线浏览和离线修改的功能,思考的不是非常全面,以后会有所增删
离线浏览和离线修改的解决方案为每次关闭前,将最后用户所操作的数据,序列化成DataSet,然后作一个离线浏览器,这个从技术上来说并不困难,困难的就是增加了上述问题。昨天第一次提出这样的问题,首先就想到了版本控制软件,解决之道,第一种,是采用数据独占的方式 ,即“严格锁”,只要一份数据被人下载到客户端,就将服务器端该数据冻结起来,不让其受到其他人的修改,但其他人可浏览。第二种方法为类似cvs的“乐观锁",就是服务器端不进行锁定,假如A修改了数据,这时候B再更新,服务器首先检查服务器端数据版本和本地数据版本是否一样,一样说明之前没有人修改,直接上传,不一样,通过日志,查找最后修改该数据的人,二人进行协商,最后确定结果。
通过数据固定化和乐观锁,应该能解决离线浏览和离线修改的功能,思考的不是非常全面,以后会有所增删
相关文章推荐
- 如何实现将vsflexgrid中修改的数据反馈到数据库中
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- 如何实现“浏览过该页面的人还浏览过...”功能(数据库版)
- 如何实现对项目中的数据进行删除、修改的功能?
- C# usb Hid 访问上位机USB通讯实例 实现设备在线或者离线和发送接收数据通讯功能
- 谈谈yii2-GridView如何实现列表页直接修改数据
- FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- HybridDB for MySQL 实现在线与离线数据分离的实践
- 【SqlServer】如何实现用一个表中的数据修改另一个表中的数据?
- delphi中,如何实现点击弹出子窗口,然后录入或修改数据?
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- iOS开发:一个高仿美团的团购ipad客户端的设计和实现(功能:根据拼音进行检索并展示数据,离线缓存团购数据,浏览记录与收藏记录的批量删除等)
- 如何对已经存在数据的表进行在线重定义方式实现分区
- ASP.NET中如何实现同一时间只有一人能够修改系统数据
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- 谈谈yii2-GridView如何实现列表页直接修改数据
- .net数据持久化封装 -如何通过修改IL代码实现
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
- Java 如何实现在线预览文档及修改(文本文件)