【发布时间】:2009-03-24 03:44:11
【问题描述】:
我正在为我的网站构建一个基本的小型 AJAX 喊话框/聊天,但我不确定如何实现服务器轮询。
这是我正在考虑的基本程序流程:
- 用户来到页面并显示最后 10 条消息
- 为了获取其他人发送的消息,客户端 javascript 将请求带有时间戳参数的 URL(设置为客户端收到的最后一条消息的值)
- 服务器返回自该时间戳以来的所有消息(最多 10 条)。
唯一的问题是轮询服务器的频率。显然它应该在每次添加新消息时进行轮询,但是当您只是阅读其他人的消息时,它需要自动更新。
应该是一个固定的时间限制吗?例如:每 10 秒。或者,它应该根据使用情况而有所不同吗?例如:5 秒后检查。如果没有消息,请不要再检查 10 秒。如果仍然没有新消息,请检查 15 秒,然后检查 20 秒,最多每 30 秒检查一次。每次检测到新消息时,将您的计时器重置为 5 秒并重新开始。
考虑到我们可能有数百名用户同时在线,我只是担心会给服务器带来不必要的压力。
...还是我把整个事情搞错了?有没有更好的方法来实现基本的 JavaScript 聊天?
【问题讨论】:
标签: javascript ajax