JS中的异步详解

2023-05-16

一:异步是什么?

同步和异步是两种模式。
"同步模式"就是指后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。
"异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。
通俗的理解异步任务,即就是当轮到某个任务执行时,这个任务可能比较复杂,或者比较耗时间,所以就先不执行这个任务,直接执行下一个任务,等结束后执行这个任务,这个任务结束后会立即执行自己的回调函数。

二:回调函数:callback

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.
以上解释是Google得出的解释,非常清晰简明,翻译过来就是:回调是一个函数,它作为参数传递给另一个函数,并在其父函数完成后执行。

举下面的例子:
在这里插入图片描述
这个是异步请求时的回调
在这里插入图片描述
这是点击事件的回调
在这里插入图片描述
同步任务的回调

所以回调与同步、异步并没有直接的联系,回调只是一种实现方式,既可以有同步回调,也可以有异步回调,还可以有事件处理回调和延迟函数回调,这些在我们工作中有很多的使用场景
所以其实并不是我们不认识回调函数,而是我们都萦绕在了这个“callback“ 这个词上,当你在一个函数中看到它是就会困惑,其实它只是一个形参名字而已。

三:JS的异步请求和异步加载;

异步请求:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
例子:当用户填写完一条信息后,该信息会自动向服务器提交,然后服务器响应客户端,在此过程中,用户依然在填写表格的信息,即向服务器请求多次,节省了用户的时间,提高了用户的体验。
异步加载:默认的js是同步加载的,(这里的“加载”可以理解成是解析、执行)。异步的JS就是指在加载这条JS代码的同时,继续执行下面的js。
举个例子:比如这段代码,

<script type="text/javascript" src='http://china-addthis.googlecode.com/svn/trunk/addthis.js'></script>
<script type="text/javascript" src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
<script type="text/javascript">
 console.log('hello world');
</script>

我们的要求似乎很简单,能在页面加载的同时,在控制台输出字符串即可,再讲的通俗一点,就是在请求第一段谷歌提供的js的同时,继续执行下面的js,也就是实现js的异步加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS中的异步详解 的相关文章

随机推荐

  • Docker的安装与使用

    1 xff0e Window10 1 1 docker安装 https www runoob com docker windows docker install html 1 2 centos7 vnc安装 拉取镜像centos7 span
  • 深度学习——数据之间的形式转化

    一 简介 在深度学习中 xff0c 会用到各种各样的数据类型 有python中常用的list xff0c 使用numpy这个科学计算库时的numpy ndarray xff0c 还有使用pytorch框架时的torch Tensor 使用数
  • 有哪些国外常用的论文网站

    经常需要查阅论文时 xff0c 除了知网还有下面这些外文网站方便我们查阅 数据库中的论文一般是比较高质量的 xff0c 有的更需要购买才可浏览下载 推荐论文下载网站 xff1a http sci hub tw 个人常用 xff1a 深度学术
  • 【经典配对解析】双子vs.天蝎:致命玩火冤家

    原创 xff1a 珊珊树 转载请注明 xff1a xff09 最近开辟一个话题专栏 xff1a 星座经典配对分析 把我们身边看到最多的 欢笑冤家 写出来 说明 xff1a 这里说的A星座vs B星座 xff0c 不一定是讲太阳星座 也可以说
  • Python爬虫项目之NBA球员可视化分析

    Python爬虫学习之NBA球员可视化分析 前言 最近刚上完Python选修课 一直挺喜欢Python的 觉得Python的简洁优美的代码像是在写诗一样让人看了赏心悦目 其次就是他强大的第三方库是其他语言所不能媲美的 有很多你需要用的功能
  • postgresql时间戳与时间的转换

    日期转时间戳 span class token keyword select span EXTRACT span class token punctuation span epoch span class token keyword FRO
  • python xml文件解析

    1 解析 1 1 解析方式 Python 有三种 XML 解析方式 xff1a SAX xff08 simple API for XML xff09 DOM xff08 Document Object Model xff09 Element
  • python输出列表去掉中括号

    可以使用 join的方法进行输出 xff0c 因为 join处理的是字符串 xff0c 所以需要进行类型转换 list1 span class token operator 61 span span class token punctuat
  • postgresql取出分组的第一条数据

    span class token comment 根据编号分组后取第一条数据 span span class token keyword SELECT span span class token operator span span cla
  • git 清空本地修改

    span class token function git span checkout span class token keyword span span class token comment 本地所有修改的 没有的提交的 xff0c
  • 关于Ubuntu卸载Python导致的终端没了

    解决方式 sudo upgrade fix missing sudo apt install ubuntu desktop
  • elasticsearch wildcard查询取消大小写

    https stackoverflow com questions 51107349 elasticsearch wildcard case sensitive 添加case insensitive 参数即可 GET test 005 se
  • window VNC Viewer设置屏幕分配率

    问题 xff1a 远程时 xff0c 显示的界面不会跟着本机屏幕大小而自动调节 xff0c 导致无法在页面中完全显示屏幕的内容 解决1 xff1a 打开VNC Viewer xff0c 选择Options xff0c 在Scale to w
  • .net core 中使用MongoDB

    https www thecodebuzz com exception filters in net core https www mongodb com docs drivers csharp https www mongodb com
  • 使用代理下载国外源registry.k8s.io镜像,并传到docker hub私有镜像库

    日常的生产开发中 xff0c 免不了从国外拉取镜像 xff0c 但有个问题 xff0c 我们可能访问不到那个镜像源 xff0c 因此需要使用代理 https labs play with docker com 具体步骤 使用docker h
  • python 操作neo4j

    安装依赖包 pip span class token function install span neo4j 使用 span class token keyword class span span class token class nam
  • neo4j获取不同维度关联关系

    插入数据 CREATE span class token punctuation span 小北 朋友圈 span class token punctuation span 姓名 span class token string 34 小北
  • neo4j结合gds实现最短路径算法

    背景 xff1a Neo4j自带的cypher语句中的 shortestpath allShortestPaths 返回值内容非常有限 xff0c 不易处理 在实际生产环境中可用性极低 xff0c 且若带where条件查询时 xff0c 查
  • C#解决中文乱码

    字符串乱码 可以使用Regex Unescape函数解决 字符串写入文件乱码 使用File AppendAllText 或者File WriteAllText path string Encoding ASCII
  • JS中的异步详解

    一 xff1a 异步是什么 xff1f 同步和异步是两种模式 34 同步模式 34 就是指后一个任务等待前一个任务结束 xff0c 然后再执行 xff0c 程序的执行顺序与任务的排列顺序是一致的 同步的 34 异步模式 34 则完全不同 x