JavaScript之异步编程

什么是异步

异步:Asynchronous,async是与同步synchronous,sync相对的概念。

传统单线程编程中,程序的运行是同步的,指程序运行在一个控制流之中运行。而异步的概念就是不保证同步的,就是说一个异步过程的执行将不和原有的序列有什么关系。

简单来说就是:同步是按照你写的代码顺序去执行,异步则是不会按照代码顺序执行,从而异步的效率是更高的。

 

什么时候使用异步编程?

1)在可能发生等待的情况
2)等待过程中不能像alert一样阻塞程序的时候
3)因此,所有的“等待的情况”都需要异步
一句话总结就是需要等待但是又不能阻塞程序的时候需要使用异步

 

回调函数

回调函数就是一个函数,它是在我们启动一个异步任务的时候就告诉它:等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了,他自己会善始善终。

 例如:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>javascript 异步编程</title>
 6     </head>
 7     <body>
 8         <p>回调函数等待三秒后执行</p>
 9         <p id="demo"></p>
10         <script>
11             function print(){
12                 document.getElementById("demo").innerHTML="javascript 异步编程"
13             }
14             setTimeout(print, 3000)
15         </script>
16     </body>
17 </html>

上述代码中的setTimeout就是一个消耗时间较长的过程,她的第一个参数叫做回调函数,第二个参数是毫秒数,这个函数执行之后会产生子线程,子线程会等待3s,然后执行回调print函数。

当然也可以写成:

1             setTimeout(function (){
2                 document.getElementById("demo").innerHTML="javascript 异步编程"
3             }, 3000)

异步Ajax

 

posted @ 2023-02-01 16:17  H年轻的心  阅读(32)  评论(0)    收藏  举报