Rumah > hujung hadapan web > tutorial js > JS异步编程实例详解

JS异步编程实例详解

小云云
Lepaskan: 2018-02-28 11:31:14
asal
1549 orang telah melayarinya

JS语言的执行环境是“单线程”为什么会出现异步编程呢?

单线程是指一次只能完成一件任务。如果有多个任务的话就必须排队,等前面的任务执行完才能执行下一个任务。

两种任务执行模式:同步和异步
“异步模式”:
回调函数是异步编程最基本的方法。每一个任务有一个或多个回调函数,前一个任务执行后不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束后就执行,所以程序的执行顺序与任务的排列顺序是不一致的,异步的。
异步编程的4种方法:

一、回调函数
这是异步编程最基本的方法。
假定有两个函数f1和f2,后者等待前者的执行结果。
如果f1是一个很耗时的任务,可以把f2写成f1的回调函数。

function f1(callback){ 

  setTimeout(function(){ 

  //f1的任务代码 

  callback(); 

  },1000); 

  }
Salin selepas log masuk

执行代码

f1(f2)
采用这种方式的优点是简单,容易理解和部署,缺点是不利于代码的阅读和维护,各个部分之间高度耦合,流程会很混乱,而且每个任务只能指定一个回调函数。

二、事件监听
采用事件驱动模式。任务的执行不取决于代码的顺序,而取决于某个事件是否发生。
首先,为f1绑定一个事件(采用jQuery的写法)。

f1.on(‘done’,f2); 

  //当f1发生done事件,就执行f2。然后对f1进行改写:
Salin selepas log masuk

如下:

fuction f1(){ 

  setTimeout(function(){ 

  //f1的任务代码 

  f1.trigger(‘done’); 

  },1000); 

  }
Salin selepas log masuk

f1.tigger(‘done’)表示,执行完成后,立即触发done事件,从而开始执行f2。
这种方法的优点是 :容易理解 ,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以去耦合,有利于实现模块化。
缺点:整个程序都要变成事件驱动型,运行流程会变得很不清晰。

相关推荐:

Javascript异步编程的4种方法介绍

javascript异步编程之回调函数和管理器用法实例详解

Javascript异步编程的方法介绍

Atas ialah kandungan terperinci JS异步编程实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan