XHR流媒体是否按设计关闭连接?

sky*_*ork 7 javascript protocols xmlhttprequest http-streaming

我正在阅读这篇文章:http://blog.pusher.com/what-c​​ame-before-websockets/,以下文字引起了我的注意:

XHR Streaming在所有浏览器中工作,XMLHttpRequest对象的responseText将继续增长,直到连接关闭,这意味着必须最终强制重新连接以清除此缓冲区.

如果我理解正确的话,这是否意味着每当缓冲区达到一定大小时(顺便说一下,这里的实际大小是多少?),连接会自行重置以清除此缓冲区?换句话说,XHR流式传输的长度与此缓冲区的大小一样长?

有人可以确认一下.

Kev*_*eid 8

XMLHttpRequest不是设计用于流式传输方式.只要服务器发送更多数据,浏览器就会继续将其附加responseTextXHR对象中的字段.

因此,我很确定他们的意思是使用XHR进行流式处理的JS代码必须定期丢弃连接并打开一个新的 - 或者由于保留所有数据而泄漏内存,以及浪费时间重新分配一个永远增长的字符串.

也就是说,限制是您必须实现的限制,以便具有可接受的长期性能,而不是浏览器强加的性能.(可能还有一个浏览器强加的响应大小上限,但我不知道是否有.)

  • @Jack我不同意;具体来说,我说内存泄漏是指包含不再使用的数据的内存最终没有被释放的情况(我认为垃圾收集器实现者等人会同意)。您的定义要么是主观的(“如果不明显,那就是泄漏”),或者暗示垃圾收集程序根据定义不包含泄漏。(我希望这能澄清我的意思;我不打算真正争论单词的定义。) (2认同)
  • 在我看来,我们需要一个术语,用于代码生成的无限内存消耗完全有效,但仍然完全疯了:) (2认同)