STEP GUIDE · Solution

這個步驟要做什麼、改哪裡、怎麼看結果

這一步聚焦 TASK-03;下方只比較「Checkpoint 2 → Solution」的真實異動。

01

三項 Task 進度

TASK-01已完成

顯示 loading 狀態

預計修改:script.js

完成後:按下載入後立即顯示讀取中

TASK-02已完成

讀取並解析 JSON

預計修改:script.js

完成後:成功取得兩筆遠端格式資料

TASK-03本步驟處理

呈現 loading、success、empty、error 四態

預計修改:script.js

完成後:loading 立即出現,成功安全顯示卡片,空資料與失敗各有明確訊息

02

HTML、CSS、JavaScript 與文件實際異動

展開檔案卡查看必要差異;只有程式碼區可以橫向捲動。

HTML本步驟無異動

檔案:index.html

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
CSS本步驟無異動

檔案:style.css

修改前

前一步與本步驟沒有實質差異。

修改後

本步驟不需修改此語言。
JavaScript本步驟有異動

檔案:script.js

修改前

(沒有刪除或替換的程式碼)

修改後

  list.replaceChildren();
  try {
    const items = await requestItems(url);
    if (!Array.isArray(items)) throw new Error("資料格式錯誤:預期為陣列");
    renderItems(items);
    setStatus(items.length === 0 ? "載入完成,目前沒有資料" : `成功載入 ${items.length} 筆`);
  } catch (error) {
    setStatus(`載入失敗:${error.message}`, "error");
  }
README/其他文件本練習未使用

檔案:README.md

修改前

本練習沒有這個檔案。

修改後

本步驟不需修改此語言。
03

怎麼看到結果

  1. 準備

    先開啟 DevTools 的 Network 與 Console 面板。

  2. 操作

    依序按「成功載入」、「模擬空資料」、「模擬失敗」;每次先確認 loading,再確認兩張卡、空資料提示或 404 錯誤。另以 Console 傳入含 HTML 的 title,確認只顯示文字。

  3. 預期

    loading、success、empty、error 四態均可控重現,外來文字不會被當成 HTML

Solution TASK-03

呈現 loading、success、empty、error 四態

完成後可見:loading 立即出現,成功安全顯示卡片,空資料與失敗各有明確訊息

內建 JSON 練習

推薦閱讀

尚未載入