如何實現在線數據的離線瀏覽和修改
昨天,老總提出來這樣一個需求,如果用戶在網絡中斷的時候,如何還能夠繼續操作他職能范圍內的數據,然后等網絡開通之后,將修改后的數據在上傳到服務器。在這樣的過程中,會出現以下情況,員工A和員工B同時負責一個職能,他們對數據具有相同的訪問能力,或者B比A訪問能力大,A和B在離線的時候,保存在各自本地的是數據的同一個版本,A首先更新了這個版本,然后上傳到服務器,這時候,如果B也是離線修改,需要將結果上傳到服務器的時候,上傳會失敗,但非常可能的情況是B的數據才是最后想要的,這時候怎么辦?
離線瀏覽和離線修改的解決方案為每次關閉前,將最后用戶所操作的數據,序列化成DataSet,然后作一個離線瀏覽器,這個從技術上來說并不困難,困難的就是增加了上述問題。昨天第一次提出這樣的問題,首先就想到了版本控制軟件,解決之道,第一種,是采用數據獨占的方式 ,即“嚴格鎖”,只要一份數據被人下載到客戶端,就將服務器端該數據凍結起來,不讓其受到其他人的修改,但其他人可瀏覽。第二種方法為類似cvs的“樂觀鎖",就是服務器端不進行鎖定,假如A修改了數據,這時候B再更新,服務器首先檢查服務器端數據版本和本地數據版本是否一樣,一樣說明之前沒有人修改,直接上傳,不一樣,通過日志,查找最后修改該數據的人,二人進行協商,最后確定結果。
通過數據固定化和樂觀鎖,應該能解決離線瀏覽和離線修改的功能,思考的不是非常全面,以后會有所增刪
離線瀏覽和離線修改的解決方案為每次關閉前,將最后用戶所操作的數據,序列化成DataSet,然后作一個離線瀏覽器,這個從技術上來說并不困難,困難的就是增加了上述問題。昨天第一次提出這樣的問題,首先就想到了版本控制軟件,解決之道,第一種,是采用數據獨占的方式 ,即“嚴格鎖”,只要一份數據被人下載到客戶端,就將服務器端該數據凍結起來,不讓其受到其他人的修改,但其他人可瀏覽。第二種方法為類似cvs的“樂觀鎖",就是服務器端不進行鎖定,假如A修改了數據,這時候B再更新,服務器首先檢查服務器端數據版本和本地數據版本是否一樣,一樣說明之前沒有人修改,直接上傳,不一樣,通過日志,查找最后修改該數據的人,二人進行協商,最后確定結果。
通過數據固定化和樂觀鎖,應該能解決離線瀏覽和離線修改的功能,思考的不是非常全面,以后會有所增刪
作者:jillzhang
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

浙公網安備 33010602011771號