我正在尝试编写一个简单的长轮询系统(是的,我不想使用任何现成的脚本,因为我想从中学习)。我正在使用Node服务器,可以轻松地将数据返回到客户端而无需调用
result.end();
。客户端应该如何实现呢?我只是想将其作为IE<=9用户的一个简单但不太好的备选方案,因为更好的浏览器可以使用快速且易于使用的WebSocket。
简而言之,如何在纯JS中进行长轮询而不使用jQuery或其他框架?(或者是否有比长轮询更好的方法)。
(xhr.readyState == 3)
,我也不太了解浏览器的实现。话虽如此,有一个名为响应主体的arrayBuffer,可能包含部分数据,直到readyState状态完成。因此,您可以从服务器多次进行.write调用,并将其读取和处理为部分段。您可以增加超时毫秒数,在ontimeout
中重新调用相同的请求。 - Arthur Weborg