| 項目 | Task Queue | Micro Task Queue |
|---|---|---|
| 📌 又稱 | Event Queue / Callback Queue | Job Queue |
| 🎯 負責處理 | setTimeout、setInterval、I/O callbacks、DOM Events 等 | Promise.then()、queueMicrotask()、MutationObserver |
| ⏳ 執行時機 | 每輪事件循環的最後階段才會執行 | 每個 task 執行結束後立即清空 microtasks |
| 🥇 優先順序 | 較低,等微任務執行完才會輪到它 | 較高,會優先執行完所有 microtasks 才會進入下一個 macro task |
| ✅ 用途 | 處理整體非同步任務 | 處理細粒度更新、異步邏輯鏈接 |
| 類型 | 定義 | 常見用途 | 常用屬性 | 使用限制 / 注意事項 | 範例語法 |
|---|---|---|---|---|---|
| Normal Flow(正常流) | 預設排列,元素依序從上到下、左到右排列(block 換行、inline 不換行) | 段落、文章、基本排版 | display: block / inline / inline-blockmargin, padding |
預設排列方式,較難做左右並排 | <p>Hello</p><span>World</span> |
| Float Flow(浮動流) | 使元素脫離正常流,漂浮到左/右邊,其它元素繞過它 | 圖文混排、舊式左右欄佈局 | float: left / rightclear, overflow(解浮動) |
脫離文流,容易影響其他元素排版,需要清除浮動 | img { float: left; }div::after { clear: both; } |
| Positioned Flow(定位流) | 脫離文流,根據指定位置(top/right/bottom/left)擺放 | 彈出視窗、對話框、貼齊右上角元素、懸浮按鈕 | position: absolute / relative / fixed / stickytop, left, z-index |
absolute 依賴最近 relative 父元素定位;fixed 固定在螢幕 |
.box { position: absolute; top: 10px; left: 20px; } |
| Flex Flow(彈性流) | 改變排列邏輯,讓子元素彈性排列於一維方向 | 水平導覽列、按鈕列、居中排版 | display: flexflex-direction, justify-content, align-items, gap |
排列為一維(單行或單列),不適合複雜網格 | `.container { display: flex; justify-c |
| 流程步驟 | 所屬 Process | 所屬 Thread |
|---|---|---|
| 使用者啟動瀏覽器 | Browser Process | Main Thread |
| 使用者輸入網址、按下 Enter | Browser Process | UI Thread、IO Thread |
| 查詢 DNS、建立連線 | Network Process | Network Thread |
| 傳送 HTTP 請求 | Network Process | Network Thread |
| 收到回應(HTML 等) | Network Process | Network Thread |
| 將資料傳給 Render Process | Render Process | Main Thread(負責 HTML/CSS/JS 解析) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| del_all_branch () { | |
| current_branch=$(git branch --show-current) | |
| git branch | grep -Ev "^\s*(master|main|develop|dev|${current_branch})$" | xargs git branch -D | |
| } | |
| kill_port() { | |
| if [ -z "$1" ]; then | |
| echo "Usage: kill_port <port>" | |
| return 1 | |
| fi |
NewerOlder