zoukankan      html  css  js  c++  java
  • ajax多个请求执行顺序

    先说结论再说原因

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

    原因:

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

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

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

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

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

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

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

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

  • 相关阅读:
    with admin option 和 with grant option 的区别 (转)
    压缩数据块
    建表时pctfree和pctused参数作用
    Oracle哪些错误会写进alert日志
    Oracle 差异、增量、零级备份
    模拟原生的promise
    react-loadable 实现组件按需加载
    react 中配置 http-proxy-middleware
    craco 配置 less.module
    ESLint: 'React' was used before it was defined.(no-use-before-define)
  • 原文地址:https://www.cnblogs.com/zhaozhou/p/9667685.html
Copyright © 2011-2022 走看看