博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈ajax异步和同步加载的区别
阅读量:4097 次
发布时间:2019-05-25

本文共 683 字,大约阅读时间需要 2 分钟。

说简单点,ajax默认是异步加载的,也就是说第一个fun请求数据时,数据还未返回时便开始执行第二个fun了,

如果将其设置为同步请求,则会等第一个function执行完后才会加载第二个function了

异步请求:

var flag=true;$.ajax({  url: "http://www.jb51.net/",  success: function(data){    flag=false;  }  });alert(flag);
alert出flag的值是多少呢?没错,是true!

var flag=true;var index=0;$.ajax({  url: "http://www.jb51.net/",  async:false,  success: function(data){    flag=false;  }  });while(flag){  index++;}alert(index);

async默认是true,也就是异步,我们设置为false,即为同步。

js是单线程的,由于执行ajax请求会消耗一定的时间,甚至出现了网络故障而迟迟得不到返回结果;这时,如果同步执行的话,就必须等到ajax返回结果以后才能执行接下来的代码,如果ajax请求需要1分钟,程序就得等1分钟。如果是异步执行的话,就是告诉ajax代码“老兄,既然你迟迟不返回结果,我先不等你了,我还有一大堆代码要执行,等你执行完了给我说一下”。

Ajax默认是异步请求的,所以就出现了上面我们看到的结果。也就是ajax里面的代码还没有执行完,先执行了下面的代码。

转载地址:http://tpqii.baihongyu.com/

你可能感兴趣的文章
为什么你应该放弃React老的Context API用新的Context API
查看>>
Koa2初体验
查看>>
Koa 2 初体验(二)
查看>>
Koa2框架原理解析和实现
查看>>
vue源码系列文章good
查看>>
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
【Unity】微信登录后将头像存为bytes,将bytes读取成sprite图片
查看>>
【Unity】使用GPS定位经纬度
查看>>
如何高效学习动态规划?
查看>>
动态规划法(六)鸡蛋掉落问题(一)
查看>>
算法数据结构 思维导图学习系列(1)- 数据结构 8种数据结构 数组(Array)链表(Linked List)队列(Queue)栈(Stack)树(Tree)散列表(Hash)堆(Heap)图
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
scala(1)----windows环境下安装scala以及idea开发环境下配置scala
查看>>