美文网首页
JavaScript异步操作和定时器原理

JavaScript异步操作和定时器原理

作者: 玄天雪海 | 来源:发表于2018-04-11 15:50 被阅读0次

JavaScript异步操作和定时器原理

setTimeout(function(){

  console.log("蚂蚁部落");

},1000)

while(true){

  //code

}

代码永远也不会输出字符串"蚂蚁部落",并不会和一些朋友想象的那样在会在一秒后输出。

之所以会出现上述现象,是因为JavaScript是单线程的,出现堵塞现象,下面就详细做一下分析。

一.JavaScript内核与浏览器内核:

JavaScript内核是单线程的,浏览器内核则是多线程的,下面介绍一下它们是如何相互配合工作的。

浏览器内核是多线程的,可以实现多个线程异步操作,这些线程包括JavaScript引擎线程,界面渲染线程和浏览器事件触发线程,这三个是常驻线程,还有像http请求这样的执行完就立马中止的线程。当然浏览器中的线程不仅仅就这几个,这里只是列举了几个与JavaScript相关的;这些线程会产生不同的异步事件。

比如使用setTimeout()定时器函数分派的任务,也可以来自浏览器内核其他线程,比如点击按钮触发一个事件的操作,ajax的http请求等。从代码角度看来任务实体就是各种回调函数,js引擎一直等待着任务队列中任务的到来。由于单线程关系,这些任务得进行排队,一个接着一个被引擎处理。

相关文章

  • JavaScript异步操作和定时器原理

    JavaScript异步操作和定时器原理 setTimeout(function(){ console.log("...

  • 定时器 类型转换 封闭函数

    定时器定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器类型及语法 /*定时器...

  • 2018-07-09

    定时器在javascript中的作用 1、制作动画 2、异步操作 3、函数缓冲与节流 定时器类型及语法 定时器: ...

  • 定时器

    定时器 定时器在javascript中的作用 1、制作动画 2、异步操作 3、函数缓冲与节流 定时器类型及语法 /...

  • AJAX异步请求的原理和过程

    Ajax的原理 AJAX指的是异步的JavaScript及XML(Asynchronous JavaScript ...

  • 数组循环定时器

    定时器 定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器类型及语法 /*定时...

  • 数组循环定时器

    定时器 定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器类型及语法 /*定时...

  • 定时器

    定时器定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流定时器类型及语法/*定时器:s...

  • 定时器

    定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器:setTimeout 只...

  • 一篇看完JS异步编程的进阶史

    一、Javascript实现异步编程的过程以及原理 1、为什么要用Javascript异步编程 众所周知,Java...

网友评论

      本文标题:JavaScript异步操作和定时器原理

      本文链接:https://www.haomeiwen.com/subject/uwyahftx.html