Problem solving guide
非同期コンテンツの空・失敗・再試行を区別する
読み込み、0件、失敗、再試行、更新失敗を分け、内容を失わず回復するための手順です。
解決する問題
非同期の結果が出ない時に、待つべきか、条件を変えるべきか、再試行すべきか判断できない。
発生条件
- 初回読込または更新処理を持つ領域。
- 成功時の内容を保持したまま再取得する画面。
原因候補
- 0件と通信失敗を同じ表示にしている
条件変更と再試行のどちらが必要か分からない。
- 更新開始時に既存内容を消している
失敗すると参照できる情報まで失われる。
推奨判断
初回読込、内容あり、0件、失敗、再試行中、更新中、内容を保持した更新失敗を別状態として扱う。
修正手順
- 状態を列挙する
利用者が取り得る次の操作ごとに状態を分ける
期待する結果: 表示と操作の契約が明確になる。
- 既存内容を保つ
更新時は内容を残して進行状態を添える
期待する結果: 読みながら完了を待てる。
- 回復操作を限定する
失敗時だけ再試行を示し、進行中は重複操作を止める
期待する結果: 回復経路が一つに絞られる。
失敗例
- 結果がない状態をすべて空表示にする
起こること: 障害を正常な0件と誤認する
代わりに: 原因と次操作が異なる状態を分ける。
- 更新のたびに全面を読込表示へ戻す
起こること: 文脈が失われる
代わりに: 既存内容と更新状態を併記する。
検証方法
- 初回読込から成功へ進める
進行表示が終了し内容が現れる。
- 0件と失敗を切り替える
案内文と利用可能操作が異なる。
- 内容表示中に更新失敗を起こす
既存内容が残り再試行できる。
