轉帖|使用教程|編輯:莫成敏|2020-03-06 13:41:21.847|閱讀 561 次
概述:本文主要介紹多人協作的難點:亂序與沖突、SpreadJS作為實現多人協作“在線excel”系統的巨大優勢是什么?以及對SpreadJS這類開發工具/組件的展望與期待?等內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
純前端表格控件SpreadJS,可滿足 .NET、Java、App 等應用程序中的 Web Excel 組件開發、數據填報、在線文檔、圖表公式聯動、類 Excel UI 設計等業務場景,并在數據可視化、Excel 導入導出、公式引用、數據綁定、框架集成中無需大量代碼開發和測試,極大降低了企業研發成本和項目交付風險。
本系列教程深入協同辦公系統的實現原理,從企業IT管理者的角度出發,深入研究多人協作的形式、基礎和難點,分析一款開發工具應具備怎樣的特點,才是實現多人協作“在線excel”系統的關鍵。本文主要介紹多人協作的難點:亂序與沖突、SpreadJS作為實現多人協作“在線excel”系統的巨大優勢是什么?以及對SpreadJS這類開發工具/組件的展望與期待等內容。
多人協作的難點:亂序與沖突
亂序
亂序的表現形式如下圖,小明在客戶端執行了一系列操作,傳遞到服務器時發生亂序,導致小花看到了截然不同的信息:
為了解決亂序問題,可以嘗試以下方法:
1. 用性能換取順序正確——基于協議
2. 用性能換取順序正確——基于回執
兩種方法的優缺點
1、基于協議
2、基于回執
基于亂序處理方法的總結
網絡不是絕對可靠的,為了實現相對可靠,需要付出一定的代價,企業需要考慮的是:如何衡量所付出的代價與產出成正比。
沖突
比亂序更高級的一種表現形式,存在多向、多維度等問題。
如何避免錯誤的蔓延?
原則:任何一次不一致,都會導致后續的操作基于錯誤的信息進行,從而不斷擴大錯誤,造成無法收拾的結果。因此,不一致是不能被容忍的。
解決辦法:
1、嚴格一致性:獨占
2、最終一致性:檢查與修復
3、非技術手段:設計與提示
嚴格的一致性
獨占就是同一時間同一范圍只能由一人操作。
1、范圍(以SpreadJS為例):整個表格,類似VSS;工作表;單元格范圍。
2、排他性:獨占沖突時,必有一方被彈開;直到占有者解開,不然無法占用;占用前無法操作;原理和鎖基本一致。
3、優點:可以確保嚴格一致性,不會產生多版本的錯誤累積;比起修復恢復這類彌補手段,一開始就不出錯的成本最低;邏輯清楚簡單,開發維護成本低。
4、缺點:靜態協作的味道;獨占動作嚴重影響體驗;大幅降低協作效率。
5、SpreadJS提供的支持:鎖定工作表;鎖定單元格。
最終一致性
基于唯一正確順序,察覺客戶端的錯誤,撤銷錯誤操作后重新執行正確的操作。
1、唯一正確:服務器到達順序;協作邊界分流;P2P+選舉算法
2、察覺錯誤:服務器回執id;服務器回執操作,MS
3、撤銷錯誤:撤銷到錯誤發生前的一步操作的結果;利用SpreadJS的撤銷功能;利用操作版本快照
4、重新執行:操作隊列需保存;區分好無感知執行與顯式執行
非技術手段
技術手段追求錯誤0發生,而非技術手段則可以降低錯誤發生的可能性。
1、選中框
2、協作設計
3、單向協作
SpreadJS作為實現多人協作“在線excel”系統的巨大優勢是什么?
首先,可以明確一點:SpreadJS完全可以用作多人協作系統開發的組件。原因在于:
多人協作表格的特點:
對SpreadJS這類開發工具/組件的展望與期待
本教程內容到這里就完結了,想要了解教程詳細內容請點擊下方鏈接~想要下載SpreadJS試用版使用,請點擊這里!
相關內容推薦:
SpreadJS實現多人協作“在線excel”系統的優勢(一):多人協作的形式
SpreadJS實現多人協作“在線excel”系統的優勢(二):多人協作的基礎
想要購買SpreadJ正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: