Javascript 最简单的实施方法是什么;“服务器推送”-比如网页的行为?

Javascript 最简单的实施方法是什么;“服务器推送”-比如网页的行为?,javascript,ajax,comet,reverse-ajax,Javascript,Ajax,Comet,Reverse Ajax,我正在尝试为我的Django站点创建一个非常简单的两人聊天室。我正在学习AJAX来实现这一点。我需要在没有用户交互的情况下更新网页的某些部分: 当用户1发送消息时,它应该出现在用户2的屏幕上 当用户1注销时,其状态应在用户2的屏幕上更改为“脱机” 实现这一点最简单的方法是什么?只是使用JavaScript定期轮询服务器吗?如果是,那么这样做的最佳实践是什么?我找到了一些关于使用setInterval或setTimeout的解决方案,但不确定这是否是最好的方法 (我读过关于reverse AJ

我正在尝试为我的Django站点创建一个非常简单的两人聊天室。我正在学习AJAX来实现这一点。我需要在没有用户交互的情况下更新网页的某些部分:

  • 当用户1发送消息时,它应该出现在用户2的屏幕上
  • 当用户1注销时,其状态应在用户2的屏幕上更改为“脱机”
实现这一点最简单的方法是什么?只是使用JavaScript定期轮询服务器吗?如果是,那么这样做的最佳实践是什么?我找到了一些关于使用setInterval或setTimeout的解决方案,但不确定这是否是最好的方法


(我读过关于reverse AJAX的文章,但从我所读的内容来看,实现它更为复杂。我不需要我的解决方案是快速的或可扩展的;我只需要它工作就行了。)

既然你说你不在乎,这当然不是很容易,setInterval就可以了。不过,你要聪明一点。您可能应该以30秒的间隔开始。如果用户开始聊天,您的时间间隔应降至5。当你注意到越来越少的动作时,你的计时器应该再次衰减到30秒,以此类推。它不会在可伸缩性大会上赢得任何奖项,但它会为您的中等规模网站完成

有关此技术的更多信息,请。

利用。乍一看,你的眼睛很容易变得呆滞,开始喃喃地说自己太复杂了,但一旦你通过了,你就会明白什么是“最佳实践”,以及为什么它既快又可扩展


你也会发现自己意识到这是一项杰出的技术,可以用于许多动态网页行为。

另一个半途而废的选择是(或任何其他托管comet服务…不确定是否还有其他)。它可以让您实现服务器推送功能,但是很好而且很简单,因为您只需要包含javascript客户端。

谢谢Joel;我去看看。