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

    先说结论再说原因

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

    原因:

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

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

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

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

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

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

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

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

  • 相关阅读:
    .NET设计模式系列文章《转》
    sharpwebmail邮件管理系统开源 下载及使用方法
    POJ 1949 DP?
    POJ 1948 DP
    POJ 1945 暴搜+打表 (Or 暴搜+判重)
    POJ 1944 并查集(模拟)
    POJ 3259 Wormholes SPFA判负环
    POJ 3268 Dijkstra+priority_queue或SPFA
    POJ 3299 模拟
    POJ 3342 树形DP+Hash
  • 原文地址:https://www.cnblogs.com/zhaozhou/p/9667685.html
Copyright © 2011-2022 走看看