Dokki 中的表格是由 Y.js 和 Hocuspocus 协作服务器支持的可协作资源。当其他人处于同一表格中时,人们可以编辑行、列、单元格和视图设置。
实时编辑的体验
单元格、行和列的更改通过协作表格文档同步。
表格编辑没有手动保存按钮。
连接的协作者在更新到达协作服务器后即可看到表格更改。
刷新表格会重新加载持久化的协作状态。
在线状态与选择
Dokki 会跟踪表格的协作者在线状态。表格界面可以显示活跃的协作者和选择状态,以便队友看到其他人正在同一表格中工作。
在线状态基于会话:当协作者连接时出现,在标签页或连接关闭后消失。
冲突行为
Y.js 处理并发结构更新而无需锁定表格。实际结果很直接:
如果两个人编辑同一个单元格,最终单元格值反映已解决的协作更新顺序;
如果某行或列在其他人编辑时被删除,删除操作会移除该目标;
如果列类型或选项列表发生变化,后续编辑和公开表单提交将根据当前列定义进行验证;
Copilot 和批量操作可以在一次操作中更新多个单元格,这些更新通过同一表格文档同步。
持久化
协作服务器将表格状态持久化到 Dokki 的表格存储中。公开表单、Copilot 工具和服务器端表格变更使用相同的表格文档路径,因此追加的行和生成的编辑会进入实时协作表格,而不是单独的副本。
对于可编辑资源,浏览器会为已登录用户保留本地副本,
以便未发送的编辑在刷新后仍然存在。该副本按账户隔离,并在该账户
注销时清除。只读资源不会保存可编辑的本地副本。
如果实时连接不可用,Dokki 可以使用备用连接
下载最新保存的状态并发送允许的本地编辑。查看者或
角色被降级的人可以接收更新,但不能上传缓存的编辑。在长时间关闭设备之前,
请等待表格重新连接,并确认最新更改出现在另一个刷新后的会话中。
规模指南
Dokki 表格专为人类规模的协作工作而设计:项目跟踪器、内容日历、CRM 风格列表、研究日志、接收队列和轻量级运营表格。非常大的分析数据集应保留在数据仓库或电子表格/数据库系统中,并将摘要或工作子集带入 Dokki。
