Javascript 依赖内部带有ajax请求的循环
hi im使用jquery在构建html表的一些循环中运行几个ajax请求 如何让它们按特定顺序运行 我尝试了$.when,然后,但在我的情况下,似乎只使用async:false工作 我有两个主要功能 1) 在循环中构建ajax请求urlJavascript 依赖内部带有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, 我
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('');