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