顯示 loading 狀態
修改檔案:script.js
完成後看見:按下載入後立即顯示讀取中
CHAPTER 20 · PRACTICE WORKSPACE
能顯示遠端資料及 loading、success、empty、error 四態
TASK STATUS
修改檔案:script.js
完成後看見:按下載入後立即顯示讀取中
修改檔案:script.js
完成後看見:成功取得兩筆遠端格式資料
修改檔案:script.js
完成後看見:loading 立即出現,成功安全顯示卡片,空資料與失敗各有明確訊息
WORKSPACE
先確認作品目前能做什麼、還缺什麼,再從 TASK-01 開始修改。
FOCUS TASK · TASK-01
比較:請求尚未完成時先顯示 loading,不能讓畫面看起來像沒有反應。
現在做:在 checkpoint-1/script.js 暫時把 loadItems() 的 setStatus("讀取中…", "loading") 改成 setStatus("尚未完成載入流程"),重新整理後按「成功載入」;記下等待期間不再可見,再復原程式並重跑。
預期:故障版會讓畫面停在「尚未完成載入流程」;復原後才會在請求開始前顯示「讀取中…」,能說出 loading 是等待中的可見契約。
證據:留下故障版與復原版各一張截圖,並口述「按下按鈕 → loading → 後續結果」的差異。
比較:setStatus 負責說明流程狀態,卡片負責呈現資料;成功後才交換內容。
現在做:在 checkpoint-1/script.js 暫時把 loadItems() 的 setStatus("讀取中…", "loading") 改成只寫 status.className = "status--loading",重新整理後按「成功載入」;觀察樣式變了但文字仍是「尚未載入」,再復原並重跑。
預期:故障版會只有 loading 樣式、沒有 loading 文字;能指出 setStatus() 負責狀態文字與樣式,資料卡片則由後續 render 責任處理。
證據:用故障版畫面與復原版畫面比較文字/樣式,並指出兩者不是同一個 DOM 責任。
完成條件:DONE-01:按下載入後立即顯示讀取中
內建 JSON 練習
尚未載入
CONTINUE
前往 Checkpoint 1,依要求完成「顯示 loading 狀態」。
CHAPTER HANDOFF
接收第 19 章:保留 selector、事件、目前項目、class 與 aria 狀態的讀碼方法;本頁是獨立資料載入器,不共用第 19 章 FAQ 的 HTML。
交給第 21 章:完成後要能重用 requestItems()、response.ok、response.json()、安全 render 與 loading/success/empty/error 四態;第 21 章會把資料來源換成 Sheet/GAS,接著處理 rows 正規化,不重做本章四態基礎。前往第 21 章