gpt4 book ai didi

javascript - for 循环中的 XMLHttpRequest

转载 作者:可可西里 更新时间:2023-11-01 02:55:09 24 4
gpt4 key购买 nike

我正在尝试在 for 循环中发出多个服务器请求。我找到了 this question并实现了建议的解决方案。但是它似乎不起作用。

    for (var i = 1; i <= 10; i++)
{
(function(i) {
if(<some conditions>)
{
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp[i]=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp[i]=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp[i].onreadystatechange=function() {
if (xmlhttp[i].readyState==4 && xmlhttp[i].status==200) {
document.getElementById("preselection").innerHTML=xmlhttp[i].responseText;
}
}
xmlhttp[i].open("GET","getBuoys.php?q="+i,true);
xmlhttp[i].send();
}
})(i);
}

如果我删除 for 循环并将所有 xmlhttp[i] 更改为 xmlhttp,则对于一个元素一切正常,但我无法发出多个请求。提前感谢您的任何建议。

最佳答案

试试下面的代码片段

// JavaScript
window.onload = function(){

var f = (function(){
var xhr = [], i;
for(i = 0; i < 3; i++){ //for loop
(function(i){
xhr[i] = new XMLHttpRequest();
url = "closure.php?data=" + i;
xhr[i].open("GET", url, true);
xhr[i].onreadystatechange = function(){
if (xhr[i].readyState === 4 && xhr[i].status === 200){
console.log('Response from request ' + i + ' [ ' + xhr[i].responseText + ']');
}
};
xhr[i].send();
})(i);
}
})();

};

// PHP [closure.php]
echo "Hello Kitty -> " . $_GET["data"];

回应

Response from request 0 [ Hello Kitty -> 0]
Response from request 1 [ Hello Kitty -> 1]
Response from request 2 [ Hello Kitty -> 2]

关于javascript - for 循环中的 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com