有谁知道是否有办法使用单个 XMLHTTPRequest 对象来发送多个异步请求。我可以通过一个请求来完成它,并从我的 onreadystatechange() 处理程序中获得响应。
我想知道是否有办法使用同一个对象来发送多个并行请求,但我没有看到任何方法来匹配对来自 onreadystatechange() 函数的请求的响应。
有谁知道是否有办法使用单个 XMLHTTPRequest 对象来发送多个异步请求。我可以通过一个请求来完成它,并从我的 onreadystatechange() 处理程序中获得响应。
我想知道是否有办法使用同一个对象来发送多个并行请求,但我没有看到任何方法来匹配对来自 onreadystatechange() 函数的请求的响应。
简短的回答:你不能。
您真正需要问自己的问题是,您为什么要在多个 XMLHTTPRequest 对象上使用它?实例化十几个对象几乎没有缺点。
+1 对 Martijn 的回答,但我想补充一点,您缺少的启示是,根据定义,请求是一次性对象。
您可以在第一个请求完成后重用该对象以发出第二个请求,并将 onreadystatechange 更改为不同的函数。
不平行,但非常快。
需要注意的是,IE 不能重用 XMLHTTPRequest 对象,即使在 IE7 和 IE8 中实现的原生 XMLHTTP 中也是如此。
对于并行请求,创建多个 XMLHTTPRequest 对象,并在它们之间分配调用。
另一个注意事项是,当并行创建多个对象时,浏览器可能会限制您对并发 XMLHTTPRequest 对象的使用。通常以非常糟糕的方式丢失请求或透明地拒绝发送它们,因此您需要仔细测试。
最安全的做事方式是创建一个请求,使用它,然后处理它并创建一个新请求。一次一个。