如何实施实时表单编辑,就像Google Docs一样

cpp*_*pit 2 javascript php mysql ajax jquery

我正在尝试将Google Docs所具有的功能(即实时协作)添加到HTML中的可编辑文本区域.例如,这将允许2或3个用户可以协作编辑相同的textarea.如何处理这个问题,或者是否有可以使用的JavaScript库?(我使用PHP,mySQL和JavaScript/AJAX/jQuery).

jmo*_*253 9

为了促进多个Web客户端之间的实时更新,您需要使用一种技术,该技术可以使用Comet或Websockets解决方案利用Web的请求/响应周期.

要保持textarea的更新,您需要从所有3个客户端建立与服务器的长期HTTP连接或Websocket连接.每个textarea都需要一个keyup或keypress处理程序,在调用时,将该字符串通过流发送到服务器.当您的服务器检索此数据时,它将需要将响应返回给其他2个连接的客户端.

然后需要通过使用最新数据更新textarea的value属性来处理响应.

我看到你正在使用PHP,我知道它支持彗星.您需要设置comet(或Websockets)才能实现此类解决方案.

话虽如此,一个更基本的选择是使用轮询来达到预期的效果.这将涉及所有3个客户端定期向服务器发出请求以检索更新.可以想象,轮询率越快,应用程序的实际时间就越多.但是,轮询速率越快,您的应用程序将消耗更多带宽和资源.

对于3个客户端,这可能是可行的,但对于涉及大量使用的任何严重应用程序,您肯定想要查看Websockets或Comet.

要回答您的JavaScript库问题,请在客户端查看Dojo Cometd库以获取Comet解决方案.