顺序执行js
Sequential execution js
我正在开发一个需要以顺序方式处理ajax调用的项目。我的代码是这样的:
for(var j=0; j<3;j++) {
$.ajax({
url:url[j],
async:false
}).done(function(result){
var data = result.data;
for(var i=0; i < data.length;i++){
analyses += "<div><div id='"" + data[i] + "'" class='"module'">";
analyses += "<br/>Analysis : " + data[i] + "<br/>";
analyses += "</div></div>";
$("#analysesPlaceHolder").html(analyses);
}
});
}
然而,现在它只是从列表中随机选择url(有时它是第一个,有时不是)。如何使执行按顺序进行,以便代码首先执行第一个ajax调用,然后执行第二个等。
我不建议在循环中使用ajax调用。
这里有一个更好的方法,它在ajax回调中增加计数,然后触发下一个ajax请求:
var urlCount = 0;
var makeAjaxCall = function(count) {
$.ajax({
url:url[count],
}).done(function(result){
var data = result.data;
for(var i=0; i < data.length;i++){
analyses += "<div><div id='"" + data[i] + "'" class='"module'">";
analyses += "<br/>Analysis : " + data[i] + "<br/>";
analyses += "</div></div>";
$("#analysesPlaceHolder").html(analyses);
}
urlCount++;
if (urlCount < 3) {
makeAjaxCall(urlCount);
}
});
}
makeAjaxCall(urlCount);
您还可以使用promise链接ajax调用,如上面的注释所述。
相关文章:
- 如何从Node.js执行.exe文件
- 在外部JS执行后加载JavaScript
- JS:执行'失败;getComputedStyle'在'窗口':参数的类型不是'
- 使用 Node.js 执行命令行二进制文件
- 获取js执行环境的版本描述
- 使用director.js执行基于哈希的函数
- 打开文件时停止了JS执行
- 为什么我不能在 Angular JS 服务中更改数据.js执行函数后
- 同步 JavaScript 调用节点 js- 执行 GET in for 循环
- 使用 Node.js 执行 EXE 文件
- 从其他 JS 执行一个函数
- 从 PHP 读取变量并使用 js 执行选择查询
- 使用 IE 开发人员工具防止 JS 执行
- 如何在使用sails JS执行res.view()函数调用之前调用另一个服务(函数)
- d3.js执行中跳过d3.extent()
- Chrome扩展..从JS执行CSS
- 通过html按钮使用node.js执行本地文件
- 使用Node.js执行简单Unix终端命令
- 在不更改鼠标位置的情况下从JS执行mouseover()
- Node.js:执行多个异步操作的最佳方式,然后执行其他操作