切換太快,畫面顯示到別筆資料

競態條件:慢的查詢晚回來蓋掉快的。症狀是偶發、越快越容易出現、重整就好;驗收要快速連續切換才測得到。

分享
切換太快,畫面顯示到別筆資料
定義:競態條件=兩個查詢同時在跑,慢的那個晚回來,把快的結果蓋掉。典型症狀:列表頁快速連點兩筆資料,畫面標題是 A 筆、內容卻是 B 筆。

症狀特徵(怎麼認出它)

  • 不是每次都發生。
  • 越快速操作越容易出現。
  • 重新整理就好。

這種「抓不太到的偶發 bug」通常就是競態。看到符合這三條的回報,可以直接朝這個方向懷疑。

為什麼會發生

使用者切到 B 筆時,A 筆的查詢還在路上。網路回應的順序不保證跟發出的順序一樣——A 的回應晚到,就把 B 的畫面蓋掉了。

解法(AI 當時怎麼解)

雙保險:切換時①主動取消上一個還在跑的查詢;②就算取消失敗,過期的回應回來也會被標記丟棄,不准更新畫面。

驗收方式(特別)

要「快速連續切換」地操弄系統才測得出來,正常速度點是測不到的。之後所有「列表→詳情」的功能都要加這條驗收。

相關條目

Read more

當軟體小白開始遇到資安問題

當軟體小白開始遇到資安問題

前端的權限處理好了,那後端呢? 花了快一天的時間,才弄清楚我到底在修什麼issue,這個資安問題分成兩部分。 第一個是前端寫好的權限,但使用者可以透過網頁開發者工具(F12)去修改自己的身分,把自己從一般使用者改成主管,來獲得操作權限。 要解決這個問題有三個步驟要設定: 1. 資料行安全性設定檔,加成員( powerplatform > 環境 > XXXX > 設定>資料行安全性設定 > 使用者) 2. 啟用資料行安全性( Power Apps > 資料表 > 使用者 > 資料行 > 點擊欲修改的顯示名稱 > 進階選項) 3. 回到資料行安全性設定檔,編輯資料行權限(讀取、更新、建立) 如此一來,有更新、建立權限的人員,才能去修改該資料行的值。 確保了後端的使用者權限不會被亂改後,

By yuchang23