Javascript 使用WebSocket回退时内存流失(使用XMLHttpRequest的HTTP流)

Javascript 使用WebSocket回退时内存流失(使用XMLHttpRequest的HTTP流),javascript,websocket,xmlhttprequest,http-streaming,forever-frame,Javascript,Websocket,Xmlhttprequest,Http Streaming,Forever Frame,在使用HTTP流的WebSocket回退中,我可以看到每当readystate更改时(并且是>=3),就会调用XmlHttpRequest\responseText WHATWG的生活标准是这样说的 …使用回退编码字符集对接收的字节运行解码的结果 我认为这意味着,每次readystate以这种方式更改时,都会创建一个新字符串,其大小与编码为UTF-16的结果相对应,该字符串是自HTTP流式传输请求发出以来接收到的所有数据 我观察到,当使用此技术时,JavaScript堆中的内存周期性地(即HTT

在使用HTTP流的WebSocket回退中,我可以看到每当
readystate
更改时(并且是>=3),就会调用
XmlHttpRequest\responseText

WHATWG的生活标准是这样说的

…使用回退编码字符集对接收的字节运行
解码
的结果

我认为这意味着,每次
readystate
以这种方式更改时,都会创建一个新字符串,其大小与编码为UTF-16的结果相对应,该字符串是自HTTP流式传输请求发出以来接收到的所有数据

我观察到,当使用此技术时,JavaScript堆中的内存周期性地(即HTTP流响应缓冲区较大的周期-它会定期重置),每秒大约有五条消息进入客户端,我认为这与上述方法有关

这听起来合理吗


是否有人找到任何技术来减少此HTTP流技术对内存子系统的影响(例如缩短每个HTTP流连接的寿命)?

您的分析是正确的。对于哪些浏览器,您仍然需要回退?IE11、Firefox 40+和Chrome 40+不幸的是,当前的后端基础设施不支持WebSocket。您在这方面有经验吗?我帮助维护这两个标准(XMLHttpRequest和WebSocket),但我认为我不能在这里提供太多实用的建议。很抱歉