我为什么要重用XmlHttpRequest对象?

Xav*_*avi 20 javascript ajax xmlhttprequest

根据我的理解,尽可能重用XmlHttpRequest对象是最佳实践.不幸的是,我很难理解为什么.似乎通过尝试重用XHR对象会增加代码复杂性并引入可能的浏览器不兼容性.那么为什么这么多人推荐呢?

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

  1. 创建的对象越少意味着垃圾收集越少
  2. 重用XHR对象可减少内存泄漏的可能性
  3. 创建新XHR对象的开销很高
  4. 浏览器能够在引擎盖下执行某种网络优化

但我仍然有点怀疑.这些原因中的任何一个都有效吗?如果没有,有什么原因?

Fin*_*arr 12

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

如果你有大量不同的XmlHttpRequest对象的一个​​剧本,出于某种原因,他们的一些连接已经无法正常关闭,或者尚未GC'd,你可能会碰到困难,开辟新的连接,完全不知道是怎么回事错误.

这和你提到的所有原因.