ajax请求的五个步骤 同步ajax请求( 二 )


看以下代码:
var flag=true;var index=0;$.ajax({ url: "", success: function(data){flag=false; } });while(flag){ index++;}alert(index);最终程序进入了一个死循环看以下代码:var flag=true;$.ajax({ url: "", success: function(data){flag=false; } });alert(flag);最终结果是true
js是单线程的 , 由于执行ajax请求会消耗一定的时间 , 甚至出现了网络故障而迟迟得不到返回结果;这时 , 如果同步执行的话 , 就必须等到ajax返回结果以后才能执行接下来的代码 , 如果ajax请求需要1分钟 , 程序就得等1分钟 。如果是异步执行的话 , 在等在server端返回的这个过程中 , 前台会会继续执行ajax块后面的脚本 , 直到server端返回正常的结果才会执行success , 这时候执行的是两个线程 , ajax块发出请求后一个线程和ajax块后面脚本
var flag=true;var index=0;$.ajax({ url: "", async:false, success: function(data){flag=false; } });while(flag){ index++;}alert(index);【ajax请求的五个步骤 同步ajax请求】最终结果是0

推荐阅读