正在回答
同学你好,在浏览器中发送请求是这样的:
1、在浏览器任务就被分成两种,一种是同步任务,一种是异步任务
同步任务:只有前一个任务执行完成后,才可执行下一个任务,在主线程中
异步任务:这个队列的所有任务都是不进入主线程执行,而是被浏览提供的线程执行。当执行完毕后就会产生一个回调函数,并且通知主线程,在主线程执行完当前所执行的任务后,就会调取最早通知自己的回调函数,使其进入主线程中执行,比如ajax请求,在主线程中呈现的就是请求结果~
2、如上所述,浏览器中请求的执行顺序就是:
(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件(回调函数callback)。
(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",查看里面有哪些事件,结束等待状态,进入执行栈,开始执行对应的异步任务。
(4)最后主线程就是不断重复上面的第三步。
如上所述就是-->异步请求在浏览器中的执行过程,所以说异步请求都是在同步请求执行完成后,再去发送请求访问服务器,所以这些请求都是按照顺序来依次执行的,并不会出现同学所说的"先处理了后台数据A,这时候异步读取后台数据A" 这样的情况。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星