【问题标题】:AJAX Real Time and collaborativeAJAX 实时和协作
【发布时间】:2010-02-09 18:51:17
【问题描述】:

我正在尝试创建实时和协作的应用程序,例如 - google wave。 当 user1 同时写东西时,它会显示在 user2 的屏幕上。

我开始了一些研究,并找到了一些使用 Ajax 的方法 -

1.每 X 秒向服务器发送请求并检查“发生了什么”

2.timeout - 长请求,问题 - 我看到我只能用 IE8 做到这一点

还有其他选择吗?最好的方法是什么?
使用方式 2,这是真的我只能用 IE8 做到这一点吗?

约西

【问题讨论】:

    标签: ajax streaming real-time collaboration long-polling


    【解决方案1】:

    AJAX 的全部意义在于服务器可以等待来自每个客户端的通知,并在发生某些事情时通知所有其他客户端。没有必要进行轮询。查找 cometbayeux 等关键字。 Dojo 有一个很好的实现。

    【讨论】:

    【解决方案2】:

    我不确定你在 2 中指的是什么,但如果我要实现这样的东西,我会按照你在 1 中的解释去做。基本上你的服务器将跟踪对话,并且客户会不断要求更新。

    另一种可能的选择是闪存,但我对它的能力了解不多,所以你自己研究一下。

    关于在选项 1 中保持快速运行的一些注意事项:

    1. 记住你只有 2 个“ajax” 在客户端使用的呼叫(您只能有 2 个呼叫 一下子出来)。所以保持跟踪 的呼叫。利用 abort() 如果调用时间过长或其响应将不再有效。

    2. 充分利用您的通话,如果 您需要向服务器发送文本, 使用响应来获取更新 当前的“对话”。

    【讨论】:

    • 好的,选项 2 - xhr.timeout = 1000; xhr.ontimeout = function(){ alert("请求没有在一秒钟内返回"); }; // 来自 -JavaScript for Web Developers,2nd Edition,如果我使用选项 1,这意味着我需要使用间隔来执行此操作。对吗?
    • 对,你会使用间隔。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多