環境
単一ページ / ajax Web アプリ
基本的なコード構造
LocationManager (ブラウザーのハッシュを更新し、アプリケーションの場所を別のタイルに切り替える責任があります)
ページ/タイル フロー
基本情報 > 世帯情報 > 車両情報 > 購入オプション > 注文の確認 > 支払いを入力して送信
問題
ユーザーが [購入オプション] から [注文の確認] に移動すると、注文の詳細を計算するために長い (5 ~ 8 秒) サービス呼び出しが行われます。通話が解決すると、コールバックは、ユーザーを [注文の確認] ページに移動するように設計されています。問題は、ユーザーがその間にクリックして世帯情報に戻った場合、通話が解決するとすぐに「自動的に」レビュー注文に移動することです。非常に厄介なユーザーエクスペリエンス。
制限事項
通話をキャンセルすることはできません。ナビゲーションを処理するソリューションが必要です。
現在提案されている実装
calculateOrder 呼び出しを行う前に、「currentLocation」を保存します。コールバックの「currentLocation」を、意図したStartingPointとしてsetLocationメソッドに渡します。setLocation メソッドの内部if(intendedStartingPoint === Locationmanager.currentLocation) {//Navigate}
要約すると、通話の進行中にユーザーが場所を変更した場合、通話の解決時に、ユーザーはその時点で [注文の確認] に移動することを期待していないため、移動しません。
これはうまくいきますよね?
キャッチ
アプリには、実行時間の長い呼び出しのコールバック内で setLocation が呼び出される場所がたくさんあります。これは、すべての setLocation 呼び出しを新しいパラメーター (意図した開始ポイント) で更新する必要があることを意味します。私には理にかなっていますが、少し混乱する可能性があるようです.
それをクリーンアップして集中化する方法についてのアイデアはありますか?