美文网首页
Dive into a/synchronous/ event l

Dive into a/synchronous/ event l

作者: Zihowe | 来源:发表于2017-08-27 03:38 被阅读13次

Concept first:所有UI操作都只能由一个线程执行

同步请求
发送同步请求,我们的主线程就会卡在等待结果的一行。此时UI就会卡死,因为javascript无法读取执行event loop里的事件或者方程了。

在android里面,这种在UI线程直接发送同步请求是不被允许的,因为不知道要多久,UI也会卡死。 所以在android里面,我们就得自己开线程执行异步请求,结果回来之后,在让UI线程执行UI操作。

发送异步请求
我们发送一个异步请求时,主线程会让Ajax线程去执行耗时的异步请求。
当Ajax线程执行完后,将结果(call back func)放到事件队列中,等待主线程调用。
回调函数如果有UI操作,一定是在主线程上(防止UI混乱)。

event loop
javascript 首先会执行完所有自身的代码(包括库函数,我们自己写的js代码),然后它会一直等待event loop里面的函数,出现一个执行一个。这样就形成了事件队列。

image.png

Reference:
https://segmentfault.com/a/1190000004322358

相关文章

  • Dive into a/synchronous/ event l

    Concept first:所有UI操作都只能由一个线程执行 同步请求发送同步请求,我们的主线程就会卡在等待结果的...

  • JavaScript事件传递机制Event Propagatio

    event propagation事件冒泡 element.addEventListener('click', l...

  • 2018-07-31

    学习/w/、/h/、/l/ In all the cases, witnesses saw the event h...

  • 2018-06-08 Event Loop

    1. node.js初始化 初始化event loop -> 执行server.js文件 -> 进入event l...

  • Dive into vim

    Dive Into VIM VIM命令行模式 1、光标的移动 h,j,k,,l,分别使光标向左,下,上,右移动; ...

  • javascript:什么是 Event Loop?

    再谈EventLoophttp://www.ruanyifeng.com/blog/2014/10/event-l...

  • Navicat中事件定时器的方法

    首先通过Navicat for MySQL查看Event事件是否开启,具体代码: show variables l...

  • Dive into it

    how to do a thing good.

  • DIVE。

    所有的爱情都是沉溺,是一种试图沉醉的习惯。 当独自的时候,心往往不知所终。而一旦有了牵挂,所有的稻草就是一个人的手...

  • DIVE

    From here I could swim. You are coming, you are coming ri...

网友评论

      本文标题:Dive into a/synchronous/ event l

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