多个 xmlhttp 请求会导致除最后一个实例之外的所有实例的 readystate 都达不到 4
Multiple xmlhttp requests causes readystate not to reach 4 for all but the last instance.
对我的xmlhttp无法完成的问题感到困惑。仅当我有多个电话时,才会出现问题。奇怪的是,只有最后一个完成。我觉得好像第一个超时了什么的。在观察窗口中的代码时,就绪状态更改函数会触发几次,但值始终为 1,最终它会跳出并执行下一次调用。有没有办法解决这个问题?马贝加了延迟?任何建议都非常受欢迎。
<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>
您为每个请求使用相同的全局变量:var xmlhttp
。然后,每个后续实例尝试对同一变量进行操作。因此,您只会得到最后一个,因为这是在任何响应返回之前要写入的变量的最后一个值。
将每个实例包装在一个函数中,以便处理本地范围的变量而不是全局变量。
您每次都使用相同的对象:
var xmlhttp = new XMLHttpRequest();
尝试为每个请求指定不同的名称。
相关文章:
- ES6构造函数返回基类的实例
- KnockoutJS-组件-多个实例
- 为什么无法在TypeScript中导出类实例
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- fluxxor向一个flux实例添加一组以上的操作
- xmlhttp.responseText不显示文本
- 使用jQuery获取Dropzone实例/对象
- "实例范围”;TypeScript类的getter/setter
- 如何在速度模板中获取LiferayPortlet实例id
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- 实例创建(JS)
- 显示模块模式在Knockout中设置模型的新实例
- 如何获取单选按钮的多个实例的选定单选按钮值
- 当同一浏览器的两个实例浏览时,Javascript页面如何具有唯一的ID
- 在哪里可以找到RXUI Javascript'时间飞逝'实例
- spine.js在启动时填充模型实例
- 不再需要时使用jQuery/kill实例
- 如何在用户输入时实例化数组
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 多个 xmlhttp 请求会导致除最后一个实例之外的所有实例的 readystate 都达不到 4