日期:2014-05-16  浏览次数:20684 次

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)的时候,但是异步回调却很慢,让用户没法确定,那么建议同步。虽然等待时间长,但是至少可以确定是否可用。
   比如:用户所有的输入都已经完成,但是仍然得不到用户名是否可用的提示。