Jquery施用AJAX同步处理数据的方法
Jquery使用AJAX同步处理数据的方法
一般使用AJAX是异步处理,但是在某些场合就要使用到AJAX的同步来处理数据,比如用JS检测数据时,需要使用AJAX提交获取用户是否在数据库存在,这是需要使用同步处理等待服务器返回的数据才能执行下一步操作,如果使用异步的话,那么程序是不会等待服务器返回数据的,所以就会出错,使用AJAX同步处理就没有问题了。下面本人写的一个非常简单的Jquery中AJAX同步提交数据函数:
异步和同步其实在这里都可以做。异步虽然不能直接得到返回值。但是有一个回调函数可以使用
这样,当异步操作完成后自动触发回调函数。从你给的场景来看,你的回调函数的功能可能就是在某个div里面显示一下,用户名是否可用。
至于什么时候用异步或者同步,可以从这几方面考虑(都用你提供的场景):
1) 严格按照步骤一步一步的来时候,请用同步。
比如:只有用户名可用,才能输入密码 。。。
2)其他情况,都可以采用异步。
3)当满足2)的时候,但是异步回调却很慢,让用户没法确定,那么建议同步。虽然等待时间长,但是至少可以确定是否可用。
比如:用户所有的输入都已经完成,但是仍然得不到用户名是否可用的提示。
一般使用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)的时候,但是异步回调却很慢,让用户没法确定,那么建议同步。虽然等待时间长,但是至少可以确定是否可用。
比如:用户所有的输入都已经完成,但是仍然得不到用户名是否可用的提示。