这两天的工作内容不多,基本是关于jquery中ajax的。之前一直都是写的最简单的ajax请求,并没关注怎么获取ajax返回值的问题,当然也没关注async这个参数的意义。
async是asynchronous[异步]的缩写,它是一个bool值默认为true。当async为true时,先不管ajax请求是否完成都要向下执行。同步请求要临时锁定浏览器,当请求正在执行时不执行任何动作。
描述下这两天要实现的功能,判断一个数据数据库里是否存在,如果存在就返回错误,不存在就可以填写并提交。代码如下:
javascript
isCompany :function(name){
var flag = 0;
if(name == '') {
return false;
}else{
$.ajax({
type: "POST",
url: '/checkCompany/name/' + name,
cache: false,
success: function(data){
return data > 0 ? false : true;
}
})
}
}
通过上面的代码,一直无法正确的反应数据库里是否已经有了这个名字。通过下了个全局变量,将async(默认为true)异步改成同步,就顺利得到了ajax的返回值。代码如下
javascript
isCompany :function(name){
var flag = 0;
if(name == '') {
return false;
}else{
$.ajax({
type: "POST",
url: '/checkName/name/' + name,
cache: false,
async: false,
success: function(data){
flag = data;
}
})
}
return flag > 0 ? false : true;
}