解決する問題

非同期の結果が出ない時に、待つべきか、条件を変えるべきか、再試行すべきか判断できない。

発生条件

  • 初回読込または更新処理を持つ領域。
  • 成功時の内容を保持したまま再取得する画面。

原因候補

  • 0件と通信失敗を同じ表示にしている

    条件変更と再試行のどちらが必要か分からない。

  • 更新開始時に既存内容を消している

    失敗すると参照できる情報まで失われる。

推奨判断

初回読込、内容あり、0件、失敗、再試行中、更新中、内容を保持した更新失敗を別状態として扱う。

修正手順

  1. 状態を列挙する

    利用者が取り得る次の操作ごとに状態を分ける

    期待する結果: 表示と操作の契約が明確になる。

  2. 既存内容を保つ

    更新時は内容を残して進行状態を添える

    期待する結果: 読みながら完了を待てる。

  3. 回復操作を限定する

    失敗時だけ再試行を示し、進行中は重複操作を止める

    期待する結果: 回復経路が一つに絞られる。

失敗例

  • 結果がない状態をすべて空表示にする

    起こること: 障害を正常な0件と誤認する

    代わりに: 原因と次操作が異なる状態を分ける。

  • 更新のたびに全面を読込表示へ戻す

    起こること: 文脈が失われる

    代わりに: 既存内容と更新状態を併記する。

検証方法

  • 初回読込から成功へ進める

    進行表示が終了し内容が現れる。

  • 0件と失敗を切り替える

    案内文と利用可能操作が異なる。

  • 内容表示中に更新失敗を起こす

    既存内容が残り再試行できる。