JS中的异步详解

一:异步是什么?

同步和异步是两种模式。
"同步模式"就是指后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。
"异步模式"则完全不同,每一个任务有一个或多个回调函数(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得出的解释,非常清晰简明,翻译过来就是:回调是一个函数,它作为参数传递给另一个函数,并在其父函数完成后执行。

举下面的例子:
JS中的异步详解_第1张图片
这个是异步请求时的回调
在这里插入图片描述
这是点击事件的回调
JS中的异步详解_第2张图片
同步任务的回调

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

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

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




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

你可能感兴趣的:(JS,js,异步)