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