如何实现在线数据的离线浏览和修改
生活随笔
收集整理的這篇文章主要介紹了
如何实现在线数据的离线浏览和修改
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
昨天,老總提出來這樣一個需求,如果用戶在網(wǎng)絡(luò)中斷的時候,如何還能夠繼續(xù)操作他職能范圍內(nèi)的數(shù)據(jù),然后等網(wǎng)絡(luò)開通之后,將修改后的數(shù)據(jù)在上傳到服務(wù)器。在這樣的過程中,會出現(xiàn)以下情況,員工A和員工B同時負責(zé)一個職能,他們對數(shù)據(jù)具有相同的訪問能力,或者B比A訪問能力大,A和B在離線的時候,保存在各自本地的是數(shù)據(jù)的同一個版本,A首先更新了這個版本,然后上傳到服務(wù)器,這時候,如果B也是離線修改,需要將結(jié)果上傳到服務(wù)器的時候,上傳會失敗,但非常可能的情況是B的數(shù)據(jù)才是最后想要的,這時候怎么辦?
離線瀏覽和離線修改的解決方案為每次關(guān)閉前,將最后用戶所操作的數(shù)據(jù),序列化成DataSet,然后作一個離線瀏覽器,這個從技術(shù)上來說并不困難,困難的就是增加了上述問題。昨天第一次提出這樣的問題,首先就想到了版本控制軟件,解決之道,第一種,是采用數(shù)據(jù)獨占的方式 ,即“嚴格鎖”,只要一份數(shù)據(jù)被人下載到客戶端,就將服務(wù)器端該數(shù)據(jù)凍結(jié)起來,不讓其受到其他人的修改,但其他人可瀏覽。第二種方法為類似cvs的“樂觀鎖",就是服務(wù)器端不進行鎖定,假如A修改了數(shù)據(jù),這時候B再更新,服務(wù)器首先檢查服務(wù)器端數(shù)據(jù)版本和本地數(shù)據(jù)版本是否一樣,一樣說明之前沒有人修改,直接上傳,不一樣,通過日志,查找最后修改該數(shù)據(jù)的人,二人進行協(xié)商,最后確定結(jié)果。
通過數(shù)據(jù)固定化和樂觀鎖,應(yīng)該能解決離線瀏覽和離線修改的功能,思考的不是非常全面,以后會有所增刪
離線瀏覽和離線修改的解決方案為每次關(guān)閉前,將最后用戶所操作的數(shù)據(jù),序列化成DataSet,然后作一個離線瀏覽器,這個從技術(shù)上來說并不困難,困難的就是增加了上述問題。昨天第一次提出這樣的問題,首先就想到了版本控制軟件,解決之道,第一種,是采用數(shù)據(jù)獨占的方式 ,即“嚴格鎖”,只要一份數(shù)據(jù)被人下載到客戶端,就將服務(wù)器端該數(shù)據(jù)凍結(jié)起來,不讓其受到其他人的修改,但其他人可瀏覽。第二種方法為類似cvs的“樂觀鎖",就是服務(wù)器端不進行鎖定,假如A修改了數(shù)據(jù),這時候B再更新,服務(wù)器首先檢查服務(wù)器端數(shù)據(jù)版本和本地數(shù)據(jù)版本是否一樣,一樣說明之前沒有人修改,直接上傳,不一樣,通過日志,查找最后修改該數(shù)據(jù)的人,二人進行協(xié)商,最后確定結(jié)果。
通過數(shù)據(jù)固定化和樂觀鎖,應(yīng)該能解決離線瀏覽和離線修改的功能,思考的不是非常全面,以后會有所增刪
轉(zhuǎn)載于:https://www.cnblogs.com/jillzhang/archive/2006/08/12/474834.html
總結(jié)
以上是生活随笔為你收集整理的如何实现在线数据的离线浏览和修改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是离线浏览,有哪些常用的离线浏览器
- 下一篇: 高分系列卫星载荷参数