码迷,mamicode.com
首页 > Web开发 > 详细

JS中事件以及语句运行顺序的问题

时间:2018-03-15 00:34:23      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:lex   读取   span   浏览器   方法   事件   eve   font   target   

先来看看问题:

问题:
1.为何onfoucs事件在这段代码中是最后才执行的?
2.这里有涉及到异步?不然的话为何onfocus事件还没执行,就继续解析下一段代码了?
技术分享图片代码如图:

技术分享图片

我在chrome,FF浏览器的运行结果得到的顺序都是:
1.console.log(document.readyState)
2.alert()语句
3.最后才是onfocus方法

运行结果:
1.一定是先出现loading的,否则alert会阻塞进程。

技术分享图片
技术分享图片
2.当我按下确定,则出现了下一段的test

技术分享图片

 

这里面涉及到JS中的事件运行机制问题:

原理是:当DOM事件,异步任务等执行的时候,JS会把他们push到任务队列中等到当前主进程中的同步任务执行完毕后才会读取任务队列中的事件。因此,上述代码中的代码,onfocus永远都是最后执行,因为他是DOM事件同时他是异步的

附上我在SF上面的本次问题的参考:https://segmentfault.com/q/1010000012255353
技术分享图片

JS中事件以及语句运行顺序的问题

标签:lex   读取   span   浏览器   方法   事件   eve   font   target   

原文地址:https://www.cnblogs.com/ge1in/p/JavaScriptEvent.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!