我们知道,jQuery中ajax同步的实现方法很简单:
如果想同步 async设置为false就可以(默认是true)
var html = $.ajax({ url: "some.php", async: false }).responseText;
或者在全局设置Ajax属性
$.ajaxSetup({ async: false });
再用post,get就是同步的了
但了解了js的执行机制(↓↓↓↓↓)后,知道了js是主线程同步执行,异步任务放入任务队列,轮询触发。
- 这两篇文章记录了js的脚本执行流程,和同步异步的使用
JS - 15 - 异步、Promise、async、await
JS - 16 - 任务调度、宏任务、微任务、轮询
但jQuery
的同步请求是在上面代码发送请求,下面代码等待至响应回来后,才执行代码。
这与js
的执行机制似乎相矛盾,但jQuery
又是js
写的。。。
由此产生了问题:jQuery
的 ajax
是实现同步请求的呢?
- 深入理解ajax系列第一篇——XHR对象
https://wwwblogs/xiaohuochai/p/6036475.html - 深入理解ajax系列第二篇——请求方式https://wwwblogs/xiaohuochai/p/6486643.html
- 深入理解ajax系列第三篇——响应解码 https://wwwblogs/xiaohuochai/p/6520547.html
- 深入理解ajax系列第四篇——FormData https://wwwblogs/xiaohuochai/p/6539330.html
- 深入理解ajax系列第五篇——进度事件 https://wwwblogs/xiaohuochai/p/6552674.html
- 深入理解ajax系列第六篇——头部信息 https://wwwblogs/xiaohuochai/p/6486578.html
- 深入理解ajax系列第七篇——传递JSON https://wwwblogs/xiaohuochai/p/6488738.html
- 深入理解ajax系列第八篇——表单提交 https://wwwblogs/xiaohuochai/p/6483493.html
- 深入理解ajax系列第九篇——jQuery中的ajax https://wwwblogs/xiaohuochai/p/6515478.html
更多推荐
jQuery的 ajax 实现同步的原理
发布评论