-
先看两行代码,放到chrome中运行一下瞅一瞅
document.write(1) alert(2)
-
我的天,竟然先弹窗显示2,点击确认后才页面输出了1
-
原因如下
- js执行和dom操作共用一个线程,同一时刻二者只能有一个在执行
- alert(2) 和 console.log(2)这种不需要浏览器渲染,直接执行js就可以得到效果
- 当运行如上两行代码,两行代码会迅速被执行,当执行第二行时,页面显示弹窗,此时js并不算执行完毕,所以无法进行dom渲染
- 当用户点击确认弹窗消失后,js执行完毕,dom开始渲染,页面输出了1
-
利用任务队列和执行栈的知识可以实现先让页面输出1,再弹窗显示2
document.write(1) setTimeout(() => { alert(2) }, 0)
document.write和alert的执行顺序问题
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
idea启动springboot项目点击run按钮及debug按钮项目没任何反应
遇到這個問題是不小心用webstorm打開了spring-boot項目,導致jb家的軟件工作空間亂了。 解決辦法,關掉webstorm,重啓idea,問題自動解決。
马挺_搞事林_沃德司机
2020-07-08 09:03:04
mybatisPlus添加一条记录后怎么获取Id
MybatisPlus在執行了添加語句以後,傳入的要保存的對象因爲是引用類型就被設置了Id,所以後面直接通過getId()獲取Id即可。
野比大雄的代码危机
2020-07-07 17:44:20
springboot注解方式读取配置文件,创建配置文件常量类
野比大雄的代码危机
2020-07-07 17:44:20
抢票原理通俗解释, 候补购票是什么?你还在交智商税吗?
忆云竹
2020-07-07 17:33:53
今天晚上加班,争取搞定剩下的需求。
iteye_20072
2020-07-07 17:00:57
儿子感冒了,明天放假就回去看他。
天氣太冷了,半歲的兒子感冒了,他媽媽打來的電話告訴我的。要住院輸液。估計要1周! 這幾天心情很是不好~~~但願兒子早點好起來!
iteye_20072
2020-07-07 17:00:56
科举制度没有真正的赢家
松下J27
2020-07-07 16:35:41
WebBench压测工具学习笔记
MIIEo
2020-07-07 15:53:35
VS开发工具学习
wqqr123456
2020-07-07 10:47:25
腾讯云Ubuntu下搭建FTP服务器
电子科学
2020-07-07 10:30:07
Win10配置java环境注意事项(不同于Win7)
电子科学
2020-07-07 10:30:07
SQLAlchemy使用UUID
电子科学
2020-07-07 10:30:07