我的xmlhttp问题未能完成而感到困惑。只有在我有多个电话时才会出现此问题。奇怪的是,只有最后一个完成。我觉得好像是第一次超时或者什么的。在观察窗口中的代码时,就绪状态更改功能会触发几次,但值始终为1,最终会跳出并执行下一次调用。有没有办法解决这个问题? MAybe加了延迟?任何建议都很有意义。
<script>
<!--var plant_select = document.createElement("select"); -->
var datafile = '';
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://localhost:8080/res/plants.csv",true);
xmlhttp.send();
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.status==200 && xmlhttp.readyState==4)
{
processCSV(xmlhttp.responseText, document.getElementById("plant_select"),"Select Plant");
}
}
</script>
</select>
</div>
<div class="menu_element" id="plantType_div">
<select class="Menu" id="plantType_select">
<script>
<!--var plant_select = document.createElement("select"); -->
var datafile = '';
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://localhost:8080/res/planttypes.csv",true);
xmlhttp.send();
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.status==200 && xmlhttp.readyState==4)
{
processCSV(xmlhttp.responseText, document.getElementById("plantType_select"),"Select Plant Type");
}
}
</script>
答案 0 :(得分:1)
每次都使用相同的对象:
var xmlhttp = new XMLHttpRequest();
尝试为每个请求指定一个不同的名称。
答案 1 :(得分:1)
您为每个请求使用相同的全局变量:var xmlhttp
。然后,每个后续实例都尝试对同一个变量进行操作。因此,您只能获得最后一个,因为这是在任何响应返回之前要写入的变量的最后一个值。
在函数中包装每个实例,以便处理本地范围的变量而不是全局变量。