使用JavaScript进行服务器轮询

对于需要非常快速刷新数据的应用程序,使用JavaScript轮询服务器的最佳实践是什么? 我使用jQuery作为前端,Java Spring Framework作为后端。

刷新数据的例子可能是非常迅速(每1秒)得到更新的项目列表。

您可能希望使用jQuery的Ajax函数每隔一秒钟轮询一次服务器。 然后服务器可以近乎实时地向浏览器提供指令。

您也可以考虑长轮询而不是上述情况,以减less延迟而不增加民意调查的频率。

引用彗星日报:长投票技术 :

长轮询彗星技术是一种优化传统轮询以减less延迟的技术。

传统轮询以固定的时间间隔向服务器发送XMLHttpRequest 。 例如,每15秒打开一个新的XMLHttpRequest ,收到即时响应,并closures连接。

长轮询向服务器发送一个请求,但是一个响应不会返回给客户端,直到有一个可用。 一旦连接closures,无论是由于客户端收到响应,或者如果请求超时,都会启动一个新的连接。 结果是显着减less了等待时间,因为服务器通常在准备好返回信息返回到客户端时build立了连接。

除了上面的内容外,我还build议你检查下面的堆栈溢出post的接受答案,以获得长轮询技术的详细描述:

  • Facebook,Gmail如何发送实时通知?

我第二次丹尼尔的build议是使用长时间轮询或推动。 查看

  • CometD Bayeux Ajax Push

CometD是一个可扩展的基于HTTP的事件路由总线,它使用了被称为Comet的Ajax Push技术模式。 “彗星”一词是由Alex Russell在其“彗星:浏览器的低延迟数据”一文中创造的。

他们有一个页面解释如何与Spring一起工作: