【问题标题】:Create online realtime text editor using ajax使用 ajax 创建在线实时文本编辑器
【发布时间】:2012-03-22 08:54:04
【问题描述】:

我要做一个实时文本编辑器,

经过我的研究,我了解到 google doc 使用的是 javascript,对于没有经验的学生来说很难做这种应用程序。

我发现还有另一个编辑器执行类似:

http://collabedit.com/

所以问题是,这个实现是基于 java 脚本还是使用其他更简单的方法? 我想做一些像那样的编辑器,我不需要任何语法检查。只允许多用户实时输入字体并通知谁输入了单词,仅此而已。

1)我可以通过 ajax 做到这一点吗?

2) 我可以使用什么功能来做到这一点?

谢谢。

【问题讨论】:

  • +1 这不是一个特定的问题(就像我们对 SO 所期望的那样),但找到解决此要求的一般方法非常有趣。我冒昧地将php 标签添加到您的问题中。
  • 您想要一个更像聊天的东西,或者是一个多方式可编辑的“云文档”?
  • 是的,当我问这个问题时,我只是想到了一个聊天室。但是聊天室是整行,我的“编辑器”是一个字一个字地显示
  • 我要去睡觉了。八小时后见。再次感谢您的回答。

标签: php javascript ajax text comet


【解决方案1】:

对于您想要实现的目标,您最好使用 HTML5 的新 WebSockets。它们使用的开销要小得多,并且是为扩展的、连续的连接而设计的。

http://websocket.org/quantum.html

【讨论】:

  • @user782104 我不能说,因为我只有有限的使用 WebSockets 的经验。这完全取决于您:对它进行硬编码并知道什么是什么,但要冒着花费更多时间而不是价值的风险,或者使用预制库,跳过技术上的废话,但冒着花费更多时间尝试的风险弄清楚它是如何工作的。如果这是一个内部实验,我会建议前者,但如果你是为某人做这个并且时间很重要,试试 pusher(这样,如果没有,至少你有责任工作;))。
【解决方案2】:

您所描述的内容有点超出了 AJAX 的功能,并进入了称为 COMET 的稍微更高级的模型(可能包括也可能不包括 WebSockets 的设施,具体取决于您询问的对象)。

或多或少,Comet 允许在网页和服务器之间进行双向通信。这意味着客户端能够向服务器发布通知,并且服务器能够将通知推送到它的任何客户端。 Socket.IO 是一个为您抽象的好框架。

您需要解决的下一个问题是后端。您将需要一个服务器端应用程序来跟踪谁已连接,以便您可以收集更改(来自每个用户的新文本)并将这些更改发布给其他侦听器(参与文本编辑会话的其他用户)。虽然您可以使用 PHP、C# 等来完成此操作,但我个人建议您花一些时间学习 node.js,因为它专门用于处理这种实时多用户应用程序。

最后,我对另一篇帖子 here 有一个类似的回答,可能会对您有所帮助。

【讨论】:

  • pusher.com 这个东西有用吗?我想更具体地了解机制。例如当一个输入时,服务器应该做什么?
  • 谢谢。在提出更多问题之前,我肯定会自己研究一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多