web-dev-qa-db-ja.com

サーバーの呼び出しが必要な場合は、戻るボタンまたはキャンセル/保存

ここでは、スライドビューから表示される設定画面があります。 「メッセージング」をタップすると、次のモーダルが表示されます。

トグルが切り替えられるたびに設定を同期することに伴う複雑さを回避するために、Messaging Settings画面を終了するときにのみ、これらの設定を保存することを選択しました。

ここで保存するための2つのオプションを考えています。

  • backまたはcloseボタン。タップすると「保存しています...」と表示され、モーダルを閉じます。これに関する私の問題は、ユーザーとして、スピナーによって戻る/閉じる遷移が中断されることを期待しないことです。
  • 変更を破棄してモーダルを閉じる左側のcancelボタン+右のsaveボタン。「保存しています...」と表示され、モーダルを閉じます。これは、ユーザーが考えるもう1つのボタンです。

2つのオプションについてどう思いますか?フォアグラウンドでの保存に制限されている場合、トグルのみを含むフォームの保存に関するベストプラクティスはありますか?理想的には、スピナーが表示されず、すべてがバックグラウンドで同期されるのが理想的ですが、技術的に簡単にするために、ユーザーが同期の完了を待つようにします。

4
ldiqual

スイッチを切り替えると、すぐに応答が返されることを期待しています。多くのサーバーリクエストを作成したくない理由はわかりますが、ボタンを1回押すだけでサーバーを呼び出すと、少なくとも1つのリクエストが失敗する可能性があり、ユーザーにこれをどのように提示するかわかりません適切な方法で。彼にもう一度各スイッチを切り替えてもらいたいですか?スイッチは、iOSのアプリまたは設定(または基本的にこれらのコンポーネントを持つすべてのOS)を切り替えるために視覚的に時間をかけて、リクエストが行われたことを示すことができます-リクエストが失敗した場合、オフにフォールバックしてスイッチオンに失敗した理由に関するアラート/メッセージ。

そのため、ボタンを押すだけで一度に多くのリクエストを行うのではなく、1つずつ処理することをお勧めします(これらのいずれか:戻る、閉じる、キャンセル)。

1

右上隅にDoneボタンがあり、ヘッダーが粘着性がある(常に表示されている)場合は、Doneをクリックしたときにのみ変更が保存されることをユーザーに通知/示すのに十分ですボタン。

また、ユーザーが電話のbackボタンを使用している場合は、モーダルボックスを表示して、ユーザーが変更を保存するかどうかを確認できます(安全のために)。そのモデルボックスが重すぎると思われる場合(行うタスク/変更が取るに足りないほど簡単ではない場合)、Don't show this message againを提案するチェックボックスを表示して、ユーザーが再度気になりたくない場合にそうする選択があります。

0
gurvinder372