顯示 loading 狀態
修改檔案:script.js
完成後看見:按下載入後立即顯示讀取中
CHAPTER 20 · PRACTICE WORKSPACE
能顯示遠端資料及 loading、success、empty、error 四態
TASK STATUS
修改檔案:script.js
完成後看見:按下載入後立即顯示讀取中
修改檔案:script.js
完成後看見:成功取得兩筆遠端格式資料
修改檔案:script.js
完成後看見:loading 立即出現,成功安全顯示卡片,空資料與失敗各有明確訊息
WORKSPACE
已完成 TASK-01;先核對可見結果,再前往 TASK-02。
FOCUS TASK · TASK-02
比較:fetch 回傳 response,還要解析 JSON body 才能取得可渲染的資料。
現在做:在 checkpoint-2/script.js 暫時把 requestItems() 的 return response.json() 改成 return response,重新整理後在 Console 執行 requestItems(successUrl).then(console.log);觀察拿到的是 Response 物件而不是兩筆資料,再復原並重跑。
預期:故障版會印出 Response 物件,沒有可直接使用的 title 陣列;復原後才得到兩筆物件,能說出 response 與 JSON body 是兩層不同結果。
證據:留下 Console 的 Response 物件與復原後陣列各一份證據,並標出 response.json() 的責任。
比較:requestItems 負責取得資料,render 負責把資料變成安全畫面。
現在做:在 checkpoint-2/script.js 暫時把 requestItems() 的 return response.json() 改成 return response.json().then(renderItems),重新整理後在 Console 呼叫 requestItems(successUrl);觀察函式不再回傳資料而直接偷偷改畫面,再復原並重跑。
預期:故障版會把請求函式和畫面副作用綁在一起,呼叫端拿不到兩筆資料;復原後 requestItems() 只回傳資料,renderItems() 由流程函式明確呼叫。
證據:用 Console 回傳值與畫面變化證明責任邊界,並指出復原後 requestItems() 沒有直接操作列表。
完成條件:DONE-02:成功取得兩筆遠端格式資料
內建 JSON 練習
尚未載入
CONTINUE
前往 Checkpoint 2,依要求完成「讀取並解析 JSON」。
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 章