Jquery等待ajax执行完毕继续执行(断点调试正常,运行异常)
以前写过一个程序,发现用断点调试的时候,一步步的运行,程序是可以的,但是去了断点程序就出现了问题。
$(document).ready(function(){
var arra=new Array();
$.post("/getdata",null,function(data){
for(var i=0;i
arra.push(data);
}
});
$("#item").val(data[0]);
});
发现自己犯了一个错误。首先,看一下$.post与$.ajax
$.post其实是$.ajax的特写,真正的形式为
$.ajax({
url: "/getdata",
type: "post",
data: null,
cache:false,
async:true,
contentType:"application/json;charset=utf-8",
success:function(data){
}
});
ajax默认请求为异步的,也就是默认将async设置为true.对上面的程序进行修改:async 参数设置为 false
$(document).ready(function(){
var arra=new Array();
$.ajax({
url: "/getdata",
type: "post",
data: null,
cache:false,
async:false,
contentType:"application/json;charset=utf-8",
success:function(data){
for(var i=0;i
arra.push(data);
}
}
});
$("#item").val(data[0]);
});
note:若使用默认的异步模式,发送ajax异步后,在等待server端返回数据的过程中,前段程序会继续执行ajax块之后的内容,直到server返回结果。这段时间中,程序拥有多个执行的线程,这样可以适当的提高性能和用户体验。而使用同步方式时,发送ajax请求后,程序会一直等待server端,直到server端返回数据。
最新文章
- svn服务端和eclipse配合使用
- Visual Studio Code 怎么支持中文
- java String常见的处理
- 【N^2迪杰斯特拉】
- 射频识别技术漫谈(13)——Mifare S50与Mifare S70
- 面向对象三大特征之封装与static——(Java学习笔记四)
- Docker使用 Supervisor 来管理进程
- MySQL——修改数据库远程权限
- IP代理网址
- HDFS基本Shell命令
- Migrate from ASP.NET Core 2.0 to 2.1
- c#代码分析
- MySQL5.6复制技术(2)-主从部署以及半同步配置详细过程
- Hadoop HDFS NameNode工作机制
- 【题解】 bzoj1088: [SCOI2005]扫雷Mine (神奇的做法)
- 江南大学第三届程序设计竞赛K题 - Cun Tou Gaming - [贪心+堆]
- ZooKeeper系列(3)命令操作 (转)
- Spring @Qualifier
- BZOJ3747:[POI2015]Kinoman(线段树)
- static笔记