Javascript AJAX readystate崩溃,AJAX处理数据的速度不够快?

Javascript AJAX readystate崩溃,AJAX处理数据的速度不够快?,javascript,ajax,Javascript,Ajax,4装载 数据传输已经完成 readyState==4 我使用了W3S的ajax框架 我想处理一组行中的数据。(表单字段)。我循环遍历表单元素并将它们发送到ajax脚本。ajax脚本然后通过get将数据发送到处理数据的php页面。处理完成后,数据应显示回调用函数的原始页面 我收到此错误消息:“完成此操作所需的数据尚不可用。”并且仅显示最后一行的结果。该函数在单个基础上正常工作,但当我尝试循环多行时,会出现错误 function stateChanged5() { if (reques

4装载 数据传输已经完成

readyState==4

我使用了W3S的ajax框架

我想处理一组行中的数据。(表单字段)。我循环遍历表单元素并将它们发送到ajax脚本。ajax脚本然后通过get将数据发送到处理数据的php页面。处理完成后,数据应显示回调用函数的原始页面

我收到此错误消息:“完成此操作所需的数据尚不可用。”并且仅显示最后一行的结果。该函数在单个基础上正常工作,但当我尝试循环多行时,会出现错误

function stateChanged5() 
{ 

    if (request5.readyState==4)
    {
        document.getElementById(displayElem).innerHTML=request5.responseText;
    }
    else
    {
        document.getElementById(displayElem).innerHTML=""; 
    }
}

除最后一行外,就绪状态条件正在中断到此处。如果我试着把上面的代码放在这里,我会得到完成此操作所需的数据,但数据还不可用。这就是为什么我得出这样的结论:php页面处理数据的速度不够快,ajax无法在下一次迭代中及时返回和显示数据。

等待每一行的结果返回,然后再开始下一次请求。

等待每一行的结果返回,然后再开始下一次迭代请求。

等待每一行的结果返回下一个。

递归

var counter = 0;

function makeRequest() {
  var xhr = // yada yada yada, get your XmlHttpRequest instance
  xhr.onreadystatechange = function() {
    if(this.readyState == 4) {
      // Do whatever, based on the counter variable
      counter += 1
      if(counter < 5)
        makeRequest();
    }
    else {
      // Do whatever, based on the counter variable
    }
  }
  xhr.open();
}
var计数器=0;
函数makeRequest(){
var xhr=//yada-yada-yada,获取XmlHttpRequest实例
xhr.onreadystatechange=函数(){
if(this.readyState==4){
//根据计数器变量执行任何操作
计数器+=1
如果(计数器<5)
makeRequest();
}
否则{
//根据计数器变量执行任何操作
}
}
xhr.open();
}
递归

var counter = 0;

function makeRequest() {
  var xhr = // yada yada yada, get your XmlHttpRequest instance
  xhr.onreadystatechange = function() {
    if(this.readyState == 4) {
      // Do whatever, based on the counter variable
      counter += 1
      if(counter < 5)
        makeRequest();
    }
    else {
      // Do whatever, based on the counter variable
    }
  }
  xhr.open();
}
var计数器=0;
函数makeRequest(){
var xhr=//yada-yada-yada,获取XmlHttpRequest实例
xhr.onreadystatechange=函数(){
if(this.readyState==4){
//根据计数器变量执行任何操作
计数器+=1
如果(计数器<5)
makeRequest();
}
否则{
//根据计数器变量执行任何操作
}
}
xhr.open();
}

我该如何做这样的事情?使用递归。看我的答案。我该如何做这样的事情?使用递归。查看我的答案。make请求从论坛传递一个元素名称。在原始页面上,当循环遍历表单元素数组并将其传递给makerequest函数时,递归将如何与我的设置方式一起工作。我不能再次调用makeRequest,因为它将是同一个元素,不是吗?您需要使用计数器变量来确定要使用哪个元素。你需要调整你现在设置东西的方式(暗示-假设它不起作用!)。如果你想要一个更适合你的设置的答案,那么你需要发布更多的代码来说明它。这里没有读心器。make请求从论坛传递一个元素名。在原始页面上,当循环遍历表单元素数组并将其传递给makerequest函数时,递归将如何与我的设置方式一起工作。我不能再次调用makeRequest,因为它将是同一个元素,不是吗?您需要使用计数器变量来确定要使用哪个元素。你需要调整你现在设置东西的方式(暗示-假设它不起作用!)。如果你想要一个更适合你的设置的答案,那么你需要发布更多的代码来说明它。这里没有读心术的人。