Jquery使用AJAX同步处理数据的方法
一般使用AJAX是异步处理,但是在某些场合就要使用到AJAX的同步来处理数据,比如用JS检测数据时,需要使用AJAX提交获取用户是否在数据库存在,这是需要使用同步处理等待服务器返回的数据才能执行下一步操作,如果使用异步的话,那么程序是不会等待服务器返回数据的,所以就会出错,使用AJAX同步处理就没有问题了。下面本人写的一个非常简单的Jquery中AJAX同步提交数据函数: function ExtAjax(pmts) {
var ajaxval = null;
var params = "ajax=true&" pmts; //URL参数
$.ajax({
url: 'xueit-Test.aspx', //接收页面
type: 'post', //POST方式发送数据
async: false, //ajax同步
data: params,
success: function(msg) {
ajaxval = msg;
}
});
return ajaxval;
}
异步和同步其实在这里都可以做。异步虽然不能直接得到返回值。但是有一个回调函数可以使用
这样,当异步操作完成后自动触发回调函数。从你给的场景来看,你的回调函数的功能可能就是在某个div里面显示一下,用户名是否可用。
至于什么时候用异步或者同步,可以从这几方面考虑(都用你提供的场景):
1) 严格按照步骤一步一步的来时候,请用同步。
比如:只有用户名可用,才能输入密码 。。。
2)其他情况,都可以采用异步。
3)当满足2)的时候,但是异步回调却很慢,让用户没法确定,那么建议同步。虽然等待时间长,但是至少可以确定是否可用。
比如:用户所有的输入都已经完成,但是仍然得不到用户名是否可用的提示。