Javascript 依赖内部带有ajax请求的循环

Javascript 依赖内部带有ajax请求的循环,javascript,jquery,ajax,loops,Javascript,Jquery,Ajax,Loops,hi im使用jquery在构建html表的一些循环中运行几个ajax请求 如何让它们按特定顺序运行 我尝试了$.when,然后,但在我的情况下,似乎只使用async:false工作 我有两个主要功能 1) 在循环中构建ajax请求url for (var i = 0; i < split.length; i++) { zeile = split[i]; request = $.ajax({ url: "url.php?q=" + zeile, 我

hi im使用jquery在构建html表的一些循环中运行几个ajax请求

如何让它们按特定顺序运行

我尝试了$.when,然后,但在我的情况下,似乎只使用async:false工作

我有两个主要功能

1) 在循环中构建ajax请求url

for (var i = 0; i < split.length; i++) {   
    zeile = split[i];

    request = $.ajax({
        url: "url.php?q=" + zeile,
我还测试了.ajaxComplete和.ajaxStop,但它们似乎可以处理任何ajax请求,而不是循环中的特定请求组

我认为问题在于构建ajax URL的循环。它不是相互依赖的ajax请求,而是内部带有ajax请求的循环

结果查找+相应的请求将按此顺序生成

 <tr><th>loop 1</th><th>loop 1</th><th>loop 1</th><th>loop 2</th><th>loop 2</th><tr>
 <tr><td>request 1</td><td>request 1</td><td>request 1</td><td>request 4</td><td>request 4</td></tr>
 <tr><td>request 1</td><td>request 1</td><td>request 1</td><td>request 5</td><td>request 5</td></tr>
 <tr><td>request 1</td><td>request 1</td><td>request 1</td><td>request 6</td><td>request 6</td></tr>
 <tr><td>request 2</td><td>request 2</td><td>request 2</td><td>request 7</td><td>request 7</td></tr>
 <tr><td>request 2</td><td>request 2</td><td>request 2</td><td>request 8</td><td>request 8</td></tr>
 <tr><td>request 3</td><td>request 3</td><td>request 3</td><td>request 9</td><td>request 9</td></tr>
 <tr><td>request 3</td><td>request 3</td><td>request 3</td><td>request 10</td><td>request 10</td></tr>
循环1loop 1loop 1loop 2loop 2
请求1请求1请求1请求4请求4
请求1请求1请求1请求5请求5
请求1请求1请求1请求6请求6
请求2请求2请求2请求2请求7请求7
请求2请求2请求2请求2请求8请求8
请求3请求3请求3请求9请求9
请求3请求3请求3请求10请求10

我不会专注于使请求同步(按特定顺序),这只会降低您的速度—除非返回的数据确实非常非常大—最好是有并行请求

我要做的是将数据(请求)的获取(完全可以异步完成)与表的实际呈现解耦

例如,您可以只启动第一个请求来填充表的主位,然后在准备就绪时启动其他请求。在这些调用成功后,只需将结果存储在一个数组中(与请求的键一起),当所有请求完成后,按顺序检查存储的结果(因为请求的键也被存储),然后生成表

顺便说一下,不是连接字符串

            p = p + "<td>...</td>"     
            p = p + "<td>...</td>"                
            p = p + "</tr>";
p=p+“…”
p=p+“…”
p=p+“”;
使用数组+联接:

            var sb = [];
            sb.push("<td>...</td>");
            sb.push("<td>...</td>");
            sb.push("</tr>");

            p += sb.join('');
var sb=[];
推某人(“…”);
推某人(“…”);
推某人(“”);
p+=某人加入(“”);

您的所有第一个请求是否都添加到同一个表中?i、 e.它们是否都返回一些附加到同一个表中的
数据?我不完全清楚第二批AJAX请求与第一批AJAX请求之间的关系。。。你能详细解释一下吗?这是一张表。第一个柱从第一个环中抽出。
            p = p + "<td>...</td>"     
            p = p + "<td>...</td>"                
            p = p + "</tr>";
            var sb = [];
            sb.push("<td>...</td>");
            sb.push("<td>...</td>");
            sb.push("</tr>");

            p += sb.join('');