看以下代码:
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
推荐阅读
- 投诉淘宝网平台的方法 淘宝云闪付怎么使用
- 负载均衡的原理 深信服负载均衡设置
- 自己制作一个网站的步骤 个人网页主页模板
- 正版win10重装系统教程 windows控制面板的作用
- 服务器虚拟化的三种方式 查看服务器系统命令
- 血糖高的人要怎么吃
- 桔子对糖尿病人的好处
- 除了喝水外如何解决宝宝便秘的情况
- 宝宝喝奶粉便秘的原因
- 引起关节疼痛的原因有很多
