我为什么要重用XmlHttpRequest对象?

时间:2010-04-21 06:24:52

标签: javascript ajax xmlhttprequest

据我所知,尽可能重用XmlHttpRequest对象是最佳做法。不幸的是,我很难理解为什么。似乎通过尝试重用XHR对象会增加代码复杂性,并引入可能的browser incompatibilities。那么为什么这么多人推荐呢?

经过一番研究,我得出了这个可能的解释清单:

  1. 创建的对象越少意味着垃圾回收越少
  2. 重用XHR对象可减少内存泄漏的可能性
  3. 创建新XHR对象的开销很高
  4. 浏览器能够在引擎盖下执行某种网络优化
  5. 但我仍然有点怀疑。这些原因中的任何一个都有效吗?如果没有,有什么原因?

1 个答案:

答案 0 :(得分:12)

在任何时候,您可以拥有的开放式连接数量存在许多问题;通常这是在浏览器级别强加的,因为在所有版本的Internet Explorer中(IE6允许2,IE7允许2,IE8允许4),这通常是由服务器限制强加的,有时这是由互联网服务提供商强加的。

如果你在一个脚本中有大量不同的XmlHttpRequest对象,并且由于某种原因某些连接没有正确关闭或者没有GC,那么你可能会遇到打开新连接的困难并且完全不知道出了什么问题。

你提及的所有原因。