jquery ajax同步和异步的区别?

2020-04-17 13:46发布

5条回答
小鹿姐姐
1楼 · 2020-04-17 13:54.采纳回答

说的简单点,跟你举个例子
比方你在烤面包,当你把面包放进烤面包机里边,然后你就一直在哪儿傻等着,一直等到面包烤好了你取出面包再开始做下面的事情这个就是同步。
异步的话就是你不等面包烤好,把面包放进烤面包机之后你就去做其他事情去了,当烤面包机一声铃响提示你烤好了,你取出面包再开始做下面的事情这个就是异步。
ajax的异步和同步也是同样道理

1、同步的概念应该是来自于操作系统中关于同步的概念。
2、不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式)。同步强调的是顺序性,谁先谁后;异步则不存在这种顺序性。
3、同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。
4、异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。

Andy
3楼 · 2020-04-17 17:49

jquery的async属性:默认情况下是true,表示异步,如果是false,表示同步。


同步:当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个ajax执行完毕后才会继续运行其他代码,页面假死状态消失。


异步:当ajax发送请求后,在等在server端返回的这个过程中,前台会会继续执行ajax块后面的脚本,直到server端返回正常的结果才会执行success,这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面脚本(另一个线程)


立志大灰狼
4楼 · 2020-04-26 23:00

总结:async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和 ajax块后面的脚本执行的另一个线程,所以当第2个例子中,ajax发送请求后,还没等到后台返回执行success中的alert(“one”)就继续执行ajax块后的alert(“two”),而执行alert(“one”)需要等到server端返回后执行。


而第1个例子中async为false,此时则为同步方式执行ajax请求,当ajax发送请求后程序会停留在function(data)等待返回结果。直到执行完function(data)方法后才会继续执行下面的js代码,所以此时页面先显示one后显示two



相关问题推荐

  • 回答 2

    1. jQuery 里面有很多东西是出于兼容性,历史遗留。比如 .ready() 之类的函数,为什么会很scroll 有关,那是为了兼容某些ie。这种代码对于编程思想来说不仅没用,而且是杂音,你要筛选出来就得了解这段代码的变动,费心费力得不偿失。2. jQuery 里面的代码不...

  • 回答 7
    已采纳

    总结回顾一下jQuery的发展历史,它经历了三个时代:1、jQuery为王的世代。一扫DOJO、Mootools、Prototype等竞争对手,成为前端必备技能。要实现一个功能,首先想到是否有成熟的jQuery Plugin可用。2、jQuery和Angularjs、Bootstrap共存的时代。Angularjs内置...

  • 回答 6
    已采纳

    一般是这样的,学习jQuery之前应该是先要学习JavaScript的,因为jQuery是JavaScript的一个类库,所以学习了JavaScript一些知识才能更好的理解jQuery。首先说一下JavaScript和jQuery的联系和区别吧。简单的说jQuery是JavaScript的一个类库,通俗的说就是jQuery...

  • 回答 9

    jQuery是库,不是框架。库只管引进来使用,除了库接口,没有其他约束,随便怎么用,free style。而框架则有着各种各样的严格约束。

  • 回答 6

    最接近替代品的当然是Zepto。不过如果你没有legacy的代码要维护,又只需要支持green browsers,可以考虑完全用标准api。

  • 回答 6

    id、name、class这三种会了就行了,后面在实践中慢慢学习吧。。不过现在纯前端好像都不咋用jquery了

  • 回答 4
    已采纳

    jq是个js的类库,里面的设计思想非常不错。但是,你假如是个新手,建议你会调用jq的api就行了。jq简化了dom的一些操作,做了一些兼容的代码,让你写得更流畅。等你成了前端大神,js玩得非常6的时候,假如有闲情逸致,可以回来看看jq这个老朋友的源码。jq使用...

  • 回答 6

    前端技术每年都会不断更新,一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度,前端技术工程师缺口非常大。技术的发展规律其实,技术的发展趋势就是追求更高的复用性,更简便的业务代码写法,所以最终都会要求跨平台、都会彻底分离非业务逻辑。j...

  • 回答 4

    *{undefinedmargin:0px;padding:0px;}.main{undefinedcursor:pointer;}.list{undefinedborder:1px solid black;display:none;}.list li{undefinedcursor:pointer;border:1px solid red;list-style:none;}#noPopEvent...

  • 回答 5

    文档过一遍,感觉理解了写一个todolist,然后把react-router文档过一遍,写一个todolist,最后把redux文档看一遍,写一个todolist。这样下来,react全家桶基本理解了

  • 回答 3

    有一定影响,而且不仅对蜘蛛,如果用户浏览器把js禁用的话也显示不了

  • 回答 5

    国外还有 Amazon, 全球最大的电子商务网站。还有微软,很多很多。

  • 回答 4

    前端框架的vue.js,angular.js,可视化工具d3.js,移动端:zepto等

没有解决我的问题,去提问