2013527 ajax技术的总结(1)

Ajax的方法是异步的,有时候会出现ajax还没返回数据就执行其他函数的情况,这样会出现很多莫名奇妙的问题,以下举出两个例子,一个是错误的,一个是正确的。

第一个是错误的:

Code =’’;
$.post(checkUrl, function(data){ code = data; });
 Alert(code);

第二个是正确的:

//-----------------------------ajax异步验证!!!!!!!!!!!!!!!!---------------------------(核心)
Code = ‘’;
function yibu()//ajax是异步的,异步这个概念要好好理解,ajax相对于其他执行来说是异步的,也就是说不会按照一般的从文件开头顺序执行到结尾的,会另外开多一个进程,故会有----延迟---!
{
    Alert(code);    
}
        
$.post(checkUrl, function(data){ code = data; yibu();});//异步执行

错误原因的分析:

例子中的错误主要是没有理解到ajax的异步概念,以为还是会按照程序的结构一步一步的执行下来。

其实,真正的执行顺序并不是这样的,真正的执行顺序是当执行到$.post()函数时会向后台发送请求,发送完毕后立刻执行下面的alert(code)函数,并不会等待后台的数据到来后才去执行。而例子二是要等待后台数据返回才会去执行alert(code)函数的。所以第一个例子弹出的警告框是空的,第二个例子弹出的警告框是返回的后台数据。

  因此,以后要特别注意ajax的异步性!

原文地址:https://www.cnblogs.com/starwolf/p/3102808.html