第 24 堂|把同一筆詢問,完整處理一次

正常路線與三種異常,沿同案實測並留下證據。

3 小時 · 六個步驟 · 54 分鐘觀念+126 分鐘實作

自己已勾選 0/6 步
步驟 1/6 · 觀念 18 分鐘

同一個id才是同一筆案件

整條正常路線使用新建立的同一真實id。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 自己新案id/主旨、API回應及另一案原狀態(去敏感)

主旨用來辨認,id才是讀寫身份。正常路線不能用不同預置案件拼成一次流程。

先分清自己的作品、線上畫面與可啟動參考包;線上參考不提供API,請在本機閱讀隨包OPEN_REFERENCE.html後操作。

一起拆解:同一條案件路線

本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。

這次的輸入

新主旨與後端回傳QH-id,依序走詢問、登入、明細、狀態與備註。

201的id → 列表同id → 明細同id
PATCH同id → GET同id → 重啟後同id

這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。

一步一步推演

  1. 先記唯一主旨與實際id,不用不同預置案拼接每一步。
  2. 每步留輸入、預期、實際、證據;另一案作未改對照。
  3. 重啟後session需重新登入,案件應仍存在。

正常應看到

一筆詢問可追到最後保存,資料與身份生命週期分清楚。

常見錯誤對照

詢問看A、管理卻看B,不能證明前後端已串成同案。

先預測,再說明原因

重啟後需要重登但案件仍在,這算哪一種資料持久結果?

跟著觀察

  1. 先讀「同一條案件路線」的輸入,指出本關實際檔案或資料。
  2. 重啟後需要重登但案件仍在,這算哪一種資料持久結果?
  3. 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。

做完,自己確認

  • 整條正常路線使用新建立的同一真實id。
  • 能指出指定檔案與作用範圍。
接著進行第 2 步
步驟 2/6 · 實作 42 分鐘

用新詢問走完整條路

整條正常路線使用新建立的同一真實id。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 自己新案id/主旨、API回應及另一案原狀態(去敏感)

自己寫獨特主旨並記實際id,做一張同案追蹤表。

跟著做

  1. 公開詢問送出新案,記真實receipt。
  2. 請AI依實際契約產同id整合測試表,不先改程式。
  3. 親手登入、讀同案、更新進度與備註、重載,再核對另一案。

建立同案端到端測試表

主要使用 Cursor 內建 AI;先附資料,再送出指令。

1.附上這些檔案與資料
  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 自己新案id/主旨、API回應及另一案原狀態(去敏感)
2.貼到哪裡
  1. 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
  2. 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
  3. 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
3.預期回覆與操作
  • 請AI依實際契約產同id整合測試表,不先改程式。
  • 重載與他案核對有實際結果,表格不預填通過。
4.自己檢查結果
  • 整條正常路線使用新建立的同一真實id。
  • 重載與他案核對有實際結果,表格不預填通過。
建立同案端到端測試表 Prompt(可收合)

你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。

情境與本次輸入:承接第22堂真實service-site後端與前端;本堂不另造功能,新增integration.html作操作路線。提供TEST_MODES本機控制器,三情境可復原不刪資料;身份與資料由真實後端處理,不以展示mock替代。

本次任務:依附真實service-site契約與我新建立的虛構id/主旨,產一份可逐項操作的整合測試表:詢問POST收到201真實id→登入me→列表找到同id→GET明細核對subject/serviceId→PATCH status與internalNote→GET同id→重載/後端重啟核對→另一案未改。列輸入、預期、實際待填、證據、復原,不修改程式或假填成功,不用不同預置案拼流程;密碼/Cookie不列入表內。

請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。
Cursor AI 無法使用?改用 ChatGPT 備援

把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。

收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。

兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。

複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。

做完,自己確認

  • 整條正常路線使用新建立的同一真實id。
  • 重載與他案核對有實際結果,表格不預填通過。

線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。

下載本關可啟動參考包

看參考包啟動與資料保留步驟

接著進行第 3 步
步驟 3/6 · 觀念 18 分鐘

異常也有可重現步驟與復原

三種異常有各自預期與實際,未測明示。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 三種異常的實際回應/DOM/原id與復原觀察

三種異常不是同一個錯誤:503保存失敗、401身份失效、200空列表,各有不同畫面與回復方式。

一起拆解:三種異常,各自復原

本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。

這次的輸入

依次測inquiry=error、expire及cases=empty,每項做完回正常。

503 → 沒保存、欄位保留
401 → 清私密內容、重登
200 [] → 零筆、原資料不刪

這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。

一步一步推演

  1. 先寫三列不同預期,再用TEST_MODES在自己的副本切換。
  2. 逐項記實際HTTP與DOM,不能只把預期欄複製成通過。
  3. 每項恢復normal、重登讀原id,再做下一項,避免模式互相干擾。

正常應看到

故障可重現又可復原,原案件保持完整。

常見錯誤對照

以刪cases檔製造空列表會破壞同案證據,不等於測空回應。

先預測,再說明原因

若忘了恢復cases=normal,後續找不到原案能否立刻判定資料遺失?

跟著觀察

  1. 先讀「三種異常,各自復原」的輸入,指出本關實際檔案或資料。
  2. 若忘了恢復cases=normal,後續找不到原案能否立刻判定資料遺失?
  3. 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。

做完,自己確認

  • 三種異常有各自預期與實際,未測明示。
  • 能指出指定檔案與作用範圍。
接著進行第 4 步
步驟 4/6 · 實作 42 分鐘

失敗、失效、空資料分開測

三種異常有各自預期與實際,未測明示。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 三種異常的實際回應/DOM/原id與復原觀察

自己先寫三種狀態預期,再切換本機測試模式。

跟著做

  1. 依TEST_MODES切inquiry=error、expire、cases=empty,分別操作。
  2. 請AI把實際證據補進異常矩陣,指出未測及需要修正的範圍。
  3. 每項恢復normal、重新登入並讀原同案,資料不可刪除。

整理三種異常測試矩陣

主要使用 Cursor 內建 AI;先附資料,再送出指令。

1.附上這些檔案與資料
  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • 三種異常的實際回應/DOM/原id與復原觀察
2.貼到哪裡
  1. 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
  2. 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
  3. 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
3.預期回覆與操作
  • 請AI把實際證據補進異常矩陣,指出未測及需要修正的範圍。
  • 模式復原後原同案仍在,沒有刪資料湊答案。
4.自己檢查結果
  • 三種異常有各自預期與實際,未測明示。
  • 模式復原後原同案仍在,沒有刪資料湊答案。
整理三種異常測試矩陣 Prompt(可收合)

你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。

情境與本次輸入:承接第22堂真實service-site後端與前端;本堂不另造功能,新增integration.html作操作路線。提供TEST_MODES本機控制器,三情境可復原不刪資料;身份與資料由真實後端處理,不以展示mock替代。

本次任務:依附實際證據建立503詢問失敗、401身份失效、200空列表三列:前置、操作、預期、實際、證據、復原。503欄位保留且無假編號;401後端拒絕且清私密DOM;200空無舊卡片並有零筆文字。依TEST_MODES切換自己的本機教學副本,結束各回normal,重登入重讀原id;不刪資料製造空狀態,不自動重送,不把缺證據填成功。若原碼符合只產測試矩陣,不為了有diff改好程式;不測正式站。

請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。
Cursor AI 無法使用?改用 ChatGPT 備援

把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。

收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。

兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。

複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。

做完,自己確認

  • 三種異常有各自預期與實際,未測明示。
  • 模式復原後原同案仍在,沒有刪資料湊答案。

線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。

下載本關可啟動參考包

看參考包啟動與資料保留步驟

接著進行第 5 步
步驟 5/6 · 觀念 18 分鐘

每次重畫都要反映最新結果

200空回應後舊列消失、零筆與提示一致。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • fault-L24/admin.js、200空JSON與殘留按鈕

故障只在rows有資料時清舊列表,空陣列便殘留之前按鈕。應每次先清舊列,再依當次結果重畫。

一起拆解:空回應也必須清舊DOM

本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。

這次的輸入

先正常載入兩筆,再讓API回200空列表;故障仍留兩個按鈕。

錯誤:if(rows.length) list.replaceChildren();
正常:list.replaceChildren(); // 每次都清

這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。

一步一步推演

  1. 先記原有兩筆與新回應空陣列,對照畫面矛盾。
  2. 只恢復無條件清列表,再依本次rows渲染。
  3. 測有資料→空→恢復正常及401清理,原id更新仍可用。

正常應看到

零筆時沒有舊卡片,正常恢復時能重畫最新資料。

常見錯誤對照

只把筆數改成0但留下舊按鈕,畫面仍不一致。

先預測,再說明原因

為何空陣列不進迴圈,仍需要先清DOM?

跟著觀察

  1. 先讀「空回應也必須清舊DOM」的輸入,指出本關實際檔案或資料。
  2. 為何空陣列不進迴圈,仍需要先清DOM?
  3. 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。

做完,自己確認

  • 200空回應後舊列消失、零筆與提示一致。
  • 能指出指定檔案與作用範圍。
接著進行第 6 步
步驟 6/6 · 實作 42 分鐘

空清單不能留下上一批案件

200空回應後舊列消失、零筆與提示一致。

先準備

  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • fault-L24/admin.js、200空JSON與殘留按鈕

先正常讀到案件,再切cases=empty並手動重新確認,記舊列與0筆矛盾。

跟著做

  1. 在獨立fault-L24重現200空但舊列仍在。
  2. 請AI只恢復renderList每次清除舊列表。
  3. 空→正常→401與同案更新回歸,不改後端回假資料。

修復空回應殘留的列表

主要使用 Cursor 內建 AI;先附資料,再送出指令。

1.附上這些檔案與資料
  • 自己的service-site/frontend相關HTML、inquiry.js、admin.js、config.js與styles.css
  • 隨包API_CONTRACT.html、TEST_MODES.html與真正教學後端;不貼密碼、Cookie、內部真實資料
  • fault-L24/admin.js、200空JSON與殘留按鈕
2.貼到哪裡
  1. 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
  2. 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
  3. 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
3.預期回覆與操作
  • 請AI只恢復renderList每次清除舊列表。
  • 正常復原與同案處理保留,未用假資料掩蓋。
4.自己檢查結果
  • 200空回應後舊列消失、零筆與提示一致。
  • 正常復原與同案處理保留,未用假資料掩蓋。
修復空回應殘留的列表 Prompt(可收合)

你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。

情境與本次輸入:承接第22堂真實service-site後端與前端;本堂不另造功能,新增integration.html作操作路線。提供TEST_MODES本機控制器,三情境可復原不刪資料;身份與資料由真實後端處理,不以展示mock替代。

本次任務:只修故障admin.js renderList中的if(rows.length)list.replaceChildren():清舊列表必須無條件執行,之後依當次rows渲染,筆數與empty同步。保留身份、同id、篩選、排序、備註、API及原資料,不用藏CSS或假案件填補。提供一處最小diff及先有資料→cases=empty→正常恢復、401清理、另一案未變與320/768/1280回歸,實際由我填。

請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。
Cursor AI 無法使用?改用 ChatGPT 備援

把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。

收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。

兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。

複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。

做完,自己確認

  • 200空回應後舊列消失、零筆與提示一致。
  • 正常復原與同案處理保留,未用假資料掩蓋。

線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。

下載本關可啟動參考包

看參考包啟動與資料保留步驟

留下本堂檢查紀錄

留下自己的檢查紀錄

記下實際做過的操作、差異與結果。還沒做的項目寫「待完成」。

勾選與筆記只保存在這個瀏覽器。

重設只清除勾選,網站檔案與檢查筆記都保留。

帶著這一步,繼續往前。

保留正常作品與實際檢查紀錄;未完成的操作可以回來補做。

帶著作品,進入第 25 堂