ajax多个请求执行顺序

先说结论再说原因

结论:比如点击事件触发了两个ajax请求或者更多的请求,是没有执行顺序的,各个请求的快慢完全取决于返回的快慢,或许你在浏览器调试窗口看见的是先发了一个请求,再发了一个,但是完全没有等待其返回就已经执行下一步操作。

原因:

首先在这里要明白单线程、多线程和线程:

线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,
即不同的线程可以执行同样的函数。

多线程与单线程的区别:
你早上上班,正要打卡的时候,手机响了。。你如果先接了电话,等接完了,在打卡,就是单线程。
如果你一手接电话,一手打卡。就是多线程。两件事的结果是一样的。。你接了电话且打了卡。

js是单线程操作,那么问题就来了,既然是单线程为啥ajax请求无顺序,因为是并行的。

在这里需要了解并发和并行:

1、并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。

2、并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。

这两个概念说深说浅都不合适,多看多理解,入几次坑就很有体会了。

原文地址:https://www.cnblogs.com/zhaozhou/p/9667685.html