我想了解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)。
答案 0 :(得分: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的实验:但是对于etherpad来说最重要的是读/写变更集的原始表。关系数据库可能是性能和理智的最佳选择。 MySQL是etherpad的默认设置。 Postgres一直在努力。 http://appolo85.wordpress.com/2010/03/22/first-steps-understanding-etherpad/
的数据库表列表(因此,nosql类型的数据库不是一个好主意。如果mysql对你来说太无聊,也许可以尝试使用所有内存数据库来获得良好的速度提升。还要注意常规的etherpad在java + scala上运行如果你想设置自己的服务器,这可能是你的主要障碍。)