我想知道 Web 界面中实时协作背后的技术和最佳实践是什么。
这方面的一个例子当然是 Google Wave。另一个是 PivotalTracker.com。
我对人们在这里使用Ruby on Rails所做的任何工作(框架、插件等)都特别感兴趣。
我想它必须在某种程度上使用 Javascript,但你需要一种方法来抽象它。可能会定期轮询服务器以查看是否已进行更改,并且如果在编辑某些内容的过程中服务器返回并说其他人已对其进行了更新,这也是一种解决冲突的方法。
谢谢!
我想知道 Web 界面中实时协作背后的技术和最佳实践是什么。
这方面的一个例子当然是 Google Wave。另一个是 PivotalTracker.com。
我对人们在这里使用Ruby on Rails所做的任何工作(框架、插件等)都特别感兴趣。
我想它必须在某种程度上使用 Javascript,但你需要一种方法来抽象它。可能会定期轮询服务器以查看是否已进行更改,并且如果在编辑某些内容的过程中服务器返回并说其他人已对其进行了更新,这也是一种解决冲突的方法。
谢谢!
Wave 具有操作变换,具有易于组合的良好特性。您有两个用户,他们每个人都在用户界面中做“某事”,两个“某事”可以合并到最终文档中。这使您可以跳过解决冲突的问题。
启用应用程序状态实时更新的一个好方法是使用Comet,它本质上是一个令人讨厌的代号,用于保持对服务器的活动、长期、未终止的 get/post 请求,该服务器完成并响应什么时候发生在服务器上。它允许向客户端发送即时更新,而无需客户端定期轮询。
我真的不能说如何在 javascript/r'n'r 中抽象出来,许多底层技术细节已经够难了,而且特定于应用程序,没有框架支持它们开箱即用。