-
先看兩行代碼,放到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