【问题标题】:Why should I reuse XmlHttpRequest objects?为什么要重用 XmlHttpRequest 对象?
【发布时间】:2011-02-10 11:11:03
【问题描述】:
据我了解,最好的做法是尽可能重用 XmlHttpRequest 对象。不幸的是,我很难理解为什么。似乎通过尝试重用 XHR 对象会增加代码复杂性并引入可能的browser incompatibilities。那为什么这么多人推荐呢?
经过一番研究,我想出了这个可能的解释列表:
- 创建的对象越少意味着垃圾收集越少
- 重用 XHR 对象可减少内存泄漏的机会
- 创建新 XHR 对象的开销很高
- 浏览器能够在后台执行某种网络优化
但我还是有点怀疑。这些理由中的任何一个真的有效吗?如果不是,有什么正当理由?
【问题讨论】:
标签:
javascript
ajax
xmlhttprequest
【解决方案1】:
有一大堆问题与您在任何时候可以拥有的打开连接数有关;通常这是在浏览器级别强加的,就像在所有版本的 Internet Explorer 中一样(IE6 允许 2,IE7 允许 2,IE8 允许 4),这通常是由服务器限制强加的,有时是由 Internet 服务提供商强加的。
如果您在一个脚本中有大量不同的 XmlHttpRequest 对象,并且由于某种原因它们的某些连接没有正确关闭或没有被 GC'd,您可能会在打开新连接时遇到困难并且完全不知道出了什么问题。
你提到的所有原因。