为网页实现“服务器推送”式行为的最简单方法是什么?

问题描述 投票:4回答:3

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

  • 当用户1发送消息时,它应该出现在用户2的屏幕上
  • 当用户1注销时,他的状态应在用户2的屏幕上变为“离线”

实现这个的最简单方法是什么? 是否只是使用JavaScript定期轮询服务器? 如果是这样,这样做的最佳做法是什么? 我找到了一些关于使用setInterval或setTimeout的解决方案,但不确定这是否是最好的方法。

(我已经阅读了关于反向AJAX的内容,但从我所读到的内容来看,这实现起来比较复杂。我不需要我的解决方案快速或可扩展;我只是需要它才能工作。)

javascript ajax comet reverse-ajax
3个回答
3
投票

既然你说你不关心Comet ,这肯定不是很容易上手,setInterval就可以了。 但是你想要聪明一点。 你可能应该以30秒的间隔开始。 如果用户开始聊天,您的间隔应该下降到5.当您注意到动作越来越少时,您的计时器应该再次衰减到30秒,依此类推。 它不会在可扩展性会议上赢得任何奖项,但它将为您的普通中型网站完成。

有关此技术的更多信息, 请查看此相关问题


2
投票

利用Orbited 。 乍一看,你的眼睛很容易上釉,开始抱怨过于复杂,但是一旦你通过它,你就会明白“最佳实践”是什么,以及为什么它既快速又可扩展。

您还会发现自己意识到这是一项出色的技术,可以用于大量动态网页行为。


0
投票

半途而废的另一个选择是WebSync On-Demand (或任何其他托管的彗星服务......不确定是否还有其他)。 它可以让你实现服务器推送功能,但是很容易上手,因为你需要做的就是包含javascript客户端。

© www.soinside.com 2019 - 2024. All rights reserved.