プロジェクト管理

処理中の表示と操作の保護

2026年9月28日 · 実装記録

翌日への進行では、試合計算・育成・移籍更新・保存が同期的に実行される。従来はブラウザーが画面を描画する前に計算が始まり、ボタンが反応していないように見えていた。操作を受け付けた時点でローディング画面を開き、描画を待ってから元の処理を実行するよう変更した。

操作受付処理中の画面を開く描画待ち表示してから計算を開始ゲーム更新入力を止めて一度だけ実行完了・復帰画面を閉じて操作を戻す

対象となる操作

操作表示と挙動
翌日へ進む変更前・変更後の日付と「Advancing the day」を表示。連打しても一度だけ進む。
練習の実行「Running training」を表示。元の練習計算・状態更新・保存を実行する。
チーム・戦術の保存保存の処理中であることを表示。出場資格やセットプレーの既存の検証を維持。
試合の準備・キックオフ相手の準備や確定済み編成の保存を表示。相手メンバー表の編集ロックを維持。
移籍の提案・契約確定契約と資金・登録情報の更新を表示。元の合意・移動日・失敗時の復元を維持。
紫のローディング画面。日付の変更、進行中の処理、動くインジケーターを表示。
390px幅のブラウザーで確認した実装画面。

失敗時の扱い

例外が発生しても処理中のロックを解除し、ゲームへ戻れる画面に切り替える。日付がすでに進んだ場合は、その事実を明記する。処理全体を自動で再実行したり、進行や契約を巻き戻したりしない。

日付進行や練習後の保存だけが失敗した場合は「Retry save」を表示する。再試行は現在の状態の保存だけを行い、日付をもう一日進めない。複数タブの保存保護と容量不足の検出は引き続き有効。

検証

計算モデルの処理は現在も主に同じ画面のスレッドで実行される。今回の対応は処理前の描画、待ち状態の表示、入力保護とエラー復帰。計算の全面的なワーカー移行、初回読み込み全体の高速化、iPhone実機での確認は今回の完了範囲に含まない。