[]
SpreadJS 协同编辑支持多名用户同时编辑同一份工作簿,所有修改实时同步,并保证数据一致性。本章节文档分为四类:教程(Tutorial)、指南(How-to)、解释(Explanation)、参考(Reference),左侧导航可看到清晰的类型边界。
快速开始:搭建一个支持实时协同的 SpreadJS 设计器 — 通过完整步骤搭建一个最小可用的实时协同示例,作为后续扩展的基础。
以上快速开始示例可独立运行。以下指南基于各自的实际需求,按需选用,相互独立。
数据库适配器 — 将协同数据持久化到数据库,支持内建的 SQLite3、PostgreSQL 以及自定义适配器。
用户活动状态 — 在协同过程中实时显示其他用户的光标、选区与在线状态。
用户权限 — 区分编辑权限与只读权限,控制不同用户的操作范围。
独立部署协同客户端和服务器 — 将前端与协同服务端分别部署,适用于前后端分离的工程结构。
扩展包安装与绑定 — 安装 spread-sheets-collaboration 扩展包,注册 OT 类型并完成工作簿与文档的绑定。
理解协同系统的运作机制、组件分工与冲突处理方式,便于排查异常与做架构决策。
协同原理速览 — 简要介绍协同编辑的整体架构、操作流转过程与冲突处理机制。
协同框架架构 — SpreadJS 产品层协同封装的组件架构、工作机制与功能概览。
协同模式 — 不同 SpreadJS 模型如何接入协同。下分两种模式:
工作表模式 — 默认协作模式,基于工作簿快照同步。
基于数据管理器的协作模式 — 集算表协作,详见 集算表。
冲突处理行为 — 多人编辑时冲突操作(插入/删除行列、隐藏、排序等)的内置处理行为。
协同撤销机制 — 协同场景下的撤销行为、OT 转换后的撤销结果、四个协同撤销事件。
底层协同框架 — 通信(js-collaboration)、OT(js-collaboration-ot)与状态(js-collaboration-presence)三个模块的完整 API。仅在自定义通信协议或在非 SpreadJS 场景中复用底层框架时需要直接使用。
查阅编写协同代码时的行为规则与接口定义。
协同规范 — 编写协同代码需遵循的约束(嵌套对象整体赋值、公式协同行为等)。
协同插件-快照与变更集 — 快照、变更集、批处理等底层 API。
操作类型枚举 — 所有 OpType 枚举。
用户与权限 API — UserManager、setPresences/getPresences。