首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AJAX轮询频率-长轮询还是不长轮询?

AJAX轮询频率-长轮询还是不长轮询?
EN

Stack Overflow用户
提问于 2010-10-02 02:30:27
回答 2查看 4.8K关注 0票数 14

我正在构建一个需要相对恒定的数据库轮询的网页组件。我可以看到两种不同的方法,我想知道其中哪一种比其他方法更好,或者我是否错过了第三种选择。

1)每隔1到2秒发送一次AJAX请求,检查是否有更新。无论是否有新数据,每个请求都会立即返回。

2)发出一个AJAX请求,该请求在收到数据或超时后才会返回。无论发生哪种情况,它都会触发下一个请求。(我认为这就是所谓的长轮询?)

数据库查询的数量将是相同的,但在#2中,从浏览器触发的请求将会更少,这可以节省带宽和客户端资源。对于服务器,让单个PHP请求保持活动并在查询之间休眠,还是每隔几秒钟触发一次,轮询数据库,然后关闭,哪个更好?或者没有区别,我对此压力太大了?

编辑:我想我也应该声明这是一个更大的web应用程序的聊天小部件。通信中的轻微延迟不会杀死用户,因为聊天是次要功能。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-02 02:58:59

长轮询将比轮询扩展得更好(即更少的服务器负载),同时提供更好的响应时间。

如果您的收件人进行轮询,则邮件的平均传输时间将是您轮询间隔的一半。

对于长轮询,它是即时的-服务器只在没有话要说的情况下才会等待。

如果你正在做聊天消息,那就去长时间轮询;这是一个可用性的问题。

长轮询的缺点是实现起来比较复杂;但它并不复杂,而且被广泛实现。因此,如果你不能为你选择的get服务器使用现成的框架,你可以开始合理地编写一个框架,你会让它工作的。

票数 8
EN

Stack Overflow用户

发布于 2010-10-02 02:34:41

您还可以查看websockets,它是最新浏览器的一部分(或通过您放在页面上的Flash file模拟)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3842063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档