1

我想了解 Etherpad 的时间线功能是如何工作的。

如果你不知道这里的 etherpad 软件是它的一个实现 - http://piratepad.net/

做一些编辑,写点东西,加粗,使用编辑器,然后在右上角你会看到时间线。单击它并播放它。

我可以看到这样的 JSON 响应 - http://img6.imagebanana.com/img/vmot5xt0/Selection_060.png但任何人都可以将其分解为可以理解的内容。

这是来自它的 Node.js 端口的一段代码 - https://github.com/Pita/etherpad-lite/blob/master/src/node/handler/TimesliderMessageHandler.js#L359

我对理解 JSON 响应及其工作原理非常感兴趣。还有什么数据库最适合此类应用程序(etherpad、google docs 等)。Nosql(如 mongodb)或 sql(如 mysql)。

4

1 回答 1

2

当您拖动时间滑块时,相关更改会从服务器发送到您发现的客户端。

更改被编码为将现有文档内容编辑为新文档内容的指令。见https://github.com/ether/etherpad-lite/wiki/Changeset-Library

原文描述为:https ://github.com/ether/pad/blob/master/infrastructure/ace/easysync-notes.txt

Etherpad 主要在 SQL 上运行。也许有其他 DB:s 的实验,但对于 etherpad 来说最重要的是读取/写入变更集的原始表。关系数据库可能是性能和健全性的最佳选择。MySQL 是 etherpad 的默认设置。Postgres 已经在开发中。http://appolo85.wordpress.com/2010/03/22/first-steps-understanding-etherpad/上的数据库表列表

(因此,nosql 类型的数据库因此不是一个好主意。如果 mysql 对您来说太无聊,也许可以尝试使用全内存数据库以获得不错的速度提升。还要注意常规 etherpad 在强大服务器上的 java+scala 上运行,如果您想设置自己的服务器,这可能是您的主要障碍。)

于 2012-06-28T17:07:37.243 回答