純前端表格控件SpreadJS:電子表格技術實踐 - 內存

在前端表格中,表格可以是鬆散佈局的一種UI表達方式,它的最小描述單元是一個單元格,也就是我們常說的CellBase。

點擊獲取SpreadJS工具下載

常用的數據結構有二維數組和對象數組,對於二維數組可以想象如果出現如圖所示的場景,一個表格2萬行,50列。如果在這個表格的第一個單元格和最後一個單元格輸入數據,可以想象一下即時只有2個單元格有內容他的內存佔用仍舊會很大。

純前端表格控件SpreadJS使用教程:電子表格技術實踐(二)內存

同時我們還可以想象另外一個場景,對於如圖的表格如果我們數據做了剪切操作,同時表格需要支持撤銷和回滾,對於以上兩種方式應該怎麼去做?

純前端表格控件SpreadJS使用教程:電子表格技術實踐(二)內存

利用前端語言的特性,實現了一組稀疏矩陣存儲模型(Sparse Array)。

相較於傳統的鏈式存儲或是數組存儲,稀疏矩陣存儲構建了基於行索引爲Key的數據字典,在鬆散佈局的表格數據中,稀疏矩陣只會對非空數據進行存儲,而不需要對空數據開闢額外的內存空間。

對於前面2萬行,50列的表格,存儲結構如圖所示。

純前端表格控件SpreadJS使用教程:電子表格技術實踐(二)內存

使用這種特殊的存儲策略,使得數據片段化變得容易,可以隨時框取整個數據層中的一片數據,進行序列化或反序列化。

借用這樣的特性,我們可以隨時替換或恢復整個存儲結構中的任何一個級別的節點,以改變引用的方式高效解決了表格數據回滾和恢復。這一點也是電子表格支持在線協同的一個基礎。

另外,使用稀疏矩陣帶來了另一個優勢,在數據檢索遍歷時,無需判空,只要對有效數據校驗即可。

純前端表格控件SpreadJS使用教程:電子表格技術實踐(二)內存

SpreadJS | 下載試用

純前端表格控件SpreadJS,兼容 450 種以上的 Excel 公式,具備“高性能、跨平臺、與 Excel 高度兼容”的產品特性,備受華爲、蘇寧易購、天弘基金等行業龍頭企業的青睞,並被中國軟件行業協會認定爲“中國優秀軟件產品”。SpreadJS 可爲用戶提供類 Excel 的功能,滿足表格文檔協同編輯、 數據填報、 類 Excel 報表設計等業務場景需求,極大的降低企業研發成本和項目交付風險。

本文轉載自葡萄城

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章