2010-02-09 35 views
0

我正在尝试创建实时协作应用程序,例如Google Wave。 当user1同时在user2屏幕上显示某些内容时。AJAX实时和协作

我开始有点研究,并发现了一些方法来此与阿贾克斯 -

每随X秒发送请求到服务器并检查什么是“发生”

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

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

Yosy

回答

0

AJAX的整点是服务器可以等待来自各客户的通知,以及有事时通知所有其他客户端。没有必要进行投票。查找关键字cometbayeux。 Dojo有很好的实现。

+0

我搜索了彗星,看到人们在做我给的2。 – Yosy 2010-02-09 19:01:53

+0

以下是一些参考文献: http://cometdaily.com/2008/10/14/private-messages-with-cometd-chat/ http://simonwillison.net/2007/Dec/5/comet/ http ://www.ibm.com/developerworks/web/library/j-jettydwr/index.html – PanCrit 2010-02-10 18:12:41

0

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

另一种可能的选择是闪光灯,但我不太了解除此之外的其他功能,所以请您自行研究。

上堆放杂物选项1中快速运行的一些注意事项:

  1. 记住,你只有2“Ajax”的 要求与客户端的工作(你只能有2个呼叫 了一次)。所以保持跟踪 的电话。如果呼叫时间过长或其响应不再有效,则使用abort()的 。

  2. 充分利用您的通话,如果 需要文本发送到服务器, 使用响应得到 目前的“对话”的最新情况。

+0

好吧, 选项2 - xhr.timeout = 1000; xhr.ontimeout = function(){ alert(“请求没有在一秒钟内返回”); }; //来自-JavaScript for Web Developers,第二版 如果我使用了选项1,那意味着我需要用interval.Right来做到这一点。 – Yosy 2010-02-09 21:05:25

+0

对,你会用间隔。 – aepheus 2010-02-09 23:18:21