処理中の表示と操作の保護
2026年9月28日 · 実装記録
翌日への進行では、試合計算・育成・移籍更新・保存が同期的に実行される。従来はブラウザーが画面を描画する前に計算が始まり、ボタンが反応していないように見えていた。操作を受け付けた時点でローディング画面を開き、描画を待ってから元の処理を実行するよう変更した。
操作受付処理中の画面を開く描画待ち表示してから計算を開始ゲーム更新入力を止めて一度だけ実行完了・復帰画面を閉じて操作を戻す
対象となる操作
| 操作 | 表示と挙動 |
|---|---|
| 翌日へ進む | 変更前・変更後の日付と「Advancing the day」を表示。連打しても一度だけ進む。 |
| 練習の実行 | 「Running training」を表示。元の練習計算・状態更新・保存を実行する。 |
| チーム・戦術の保存 | 保存の処理中であることを表示。出場資格やセットプレーの既存の検証を維持。 |
| 試合の準備・キックオフ | 相手の準備や確定済み編成の保存を表示。相手メンバー表の編集ロックを維持。 |
| 移籍の提案・契約確定 | 契約と資金・登録情報の更新を表示。元の合意・移動日・失敗時の復元を維持。 |

失敗時の扱い
例外が発生しても処理中のロックを解除し、ゲームへ戻れる画面に切り替える。日付がすでに進んだ場合は、その事実を明記する。処理全体を自動で再実行したり、進行や契約を巻き戻したりしない。
日付進行や練習後の保存だけが失敗した場合は「Retry save」を表示する。再試行は現在の状態の保存だけを行い、日付をもう一日進めない。複数タブの保存保護と容量不足の検出は引き続き有効。
検証
- 実際の練習・翌日ボタンを使い、ローディングの描画後に処理が始まること、一度だけの日付更新、編成・戦術の維持と保存・復元を確認。
- 処理中の重複操作、Escapeでの解除防止、例外後の復帰、保存失敗後の保存だけの再試行を確認。
- 320・390・1280pxの表示と、動きを減らす設定を確認。進捗率は計測していないため、百分率を表示しない。
- 確定済み相手メンバー表、試合開始、スカウト通知、移籍期間前の合意・期間開始後の加入を既存の統合テストで確認。
計算モデルの処理は現在も主に同じ画面のスレッドで実行される。今回の対応は処理前の描画、待ち状態の表示、入力保護とエラー復帰。計算の全面的なワーカー移行、初回読み込み全体の高速化、iPhone実機での確認は今回の完了範囲に含まない。