Javascript “长轮询客户端”;“时间间隔”;两次投票之间

Javascript “长轮询客户端”;“时间间隔”;两次投票之间,javascript,ajax,websocket,long-polling,Javascript,Ajax,Websocket,Long Polling,假设我有一个服务器支持客户端长轮询。 然后我的客户端代码如下所示: var polling = function() { $.ajax({ url: "/polling" }).done(function(data) { // polling again polling(); // process the pushed data ... }); } polling(); 当客户端持续轮询到“

假设我有一个服务器支持客户端长轮询。 然后我的客户端代码如下所示:

var polling = function() {
    $.ajax({
        url: "/polling"
    }).done(function(data) {
        // polling again
        polling();
        // process the pushed data
        ...
    });
}
polling();
当客户端持续轮询到“/polling”时,当我想将某个内容推送到客户端时,这应该会起作用

但是,您可能会注意到,在客户端接收到推送数据和下一次轮询到达服务器之间存在“时间间隔”。此“时间间隔”中的数据将丢失

有多种服务器端解决方法可以避免此问题。 但是我想知道客户端是否有任何解决方法? 例如: *客户端能否始终保持长轮询请求的连接?我发现Gmail应该做一些像这样的把戏。我在gtalk中聊天,但没有看到“/bind”请求中断。 *ajax在传输时是否应该接收完整的数据?这样连接就可以永远连接。
*websocket应该工作吗?如果是这样,如果没有HTML5,我能做些什么?

< P>你可能想考虑一下,它会使你的生活在处理这些事情时变得更容易(因为他们给你一个库,在一个好的包中处理所有这些)。p> 嗯,你为什么会有时间间隔?您的会话请求不应该知道上次信息返回的时间吗?@epascarello,是的,服务器知道上次轮询的时间。但是,当服务器在两次轮询间隔期间有东西要推送时,服务器应该在后续轮询到达时缓存/持久化数据一段时间。但是如果没有间隙,服务器就不需要缓存。