【问题标题】:Operational transformation and collaboration in real time实时运营转型与协作
【发布时间】:2011-07-05 22:29:18
【问题描述】:

读完这个post 之后(可能你可以通过看图片来了解要点,无需阅读全文),我很难决定在哪一点需要@987654322 的帮助@ 类型技术。 在我看来(天真地)所有这些都可以通过使用 ajax 请求和数据库来检索多个版本来完成。真的吗?。

可能我遗漏了什么,所以澄清一下会很好。

更新: 鉴于 Andrew 写的有帮助的答案,说这个问题的 ajax 方法不及时,我想知道为什么,即服务器发送给客户端的响应在哪个阶段会产生延迟?。

【问题讨论】:

    标签: javascript ajax comet collaboration


    【解决方案1】:

    Comet 是 Ajax 请求。

    为了让服务器能够将通知推送到用户浏览器(IE 每当您看到服务器在图表中发送更改),用户需要已经与服务器建立连接。使用 ajax 长轮询等来维护该连接的方法就是彗星一词所指的。

    是的,您可以通过每 x 秒发送一个 Ajax 请求来实现这一点。但这很浪费,而且不及时。

    [编辑]

    当我说它不及时时,我的意思是,使用 ajax 调用来更新时间间隔将延迟该时间间隔。 服务器不能向客户端发送更新。它只能回答来自客户端的请求。因此,如果服务器获得新信息,它必须坐在上面,直到所有客户端都回来并要求更新。在这样的场景中,人们可以编辑相同的信息并同时提交,这需要由服务器处理,这也是本文要解决的问题。使用 Comet 框架只会减少发生这种情况的机会,因为不同的客户端会更好地同步。

    【讨论】:

    • @Andrew:谢谢你的回答。我曾考虑使用 Ajax Push 服务(APE 或 pusherapp)。这会改变实现方式吗?显然我不想每 x 秒发送一次 ajax 请求,相反,这些请求应该在用户触发特定操作时开始。
    • 不,APE 或任何其他comet 实现将在用户加载页面(或文章案例中的文档)时打开与服务器的连接,然后坐在那里。当用户在本地进行更改时,可以使用 ajax 将其发送到服务器,当远程用户进行更改时,服务器将完成该请求并更新本地用户。这篇文章根本不是在谈论这个,它只是在解释如何在异步更改进行的情况下维护文档的状态,它希望由读者来实现通信。
    • @Andrew:对。我知道这篇文章没有提到这一点,但我想知道是否可以使用 APE(例如)来帮助实现。
    • @Andrew:顺便说一下,为了收到您的评论通知,请在您的消息中添加@[用户名] :-)
    • @Robert (Happy :P) 好吧,如果是这样的话,是的! APE 在创建实时多用户工作环境方面非常有效。
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多