質問

Ajax フォームでデータを保存するための一般的なベスト プラクティスは何なのか疑問に思っています。で スプリーの電子商取引 たとえば、オブジェクトのリストの値を変更するたびに (注文内の特定の品目の数量を変更するなど)、Ajax 呼び出しを使用してデータベースが更新されます。

フォームの編集が完了したら、ユーザーに手動で「保存」または「更新」を押させるのが良いでしょうか、それとも可能であれば (Ajax の代替手段を設定しているのであれば) 何かが変更されるたびにデータを自動的に保存するのが良いでしょうか?

Stack Overflow Careers は、ajax を使用して数秒ごとにプロファイルの「ドラフト」を保存しているようです。

そのため、Ajax を使用している場合、フォームにデータを保存するには 3 つの方法があるようです。

  1. ユーザーがボタンを押すと、すべてのデータが一度に保存されますが、データが重要な場合は適していません
  2. 時間間隔ごとに保存する
  3. すべての変更を保存する

おすすめは何ですか?

役に立ちましたか?

解決

よい質問。私はのすべてのの状況でカバーフリーサイズのベスト・プラクティスがないと思います。一般的に、より多くのユーザーフレンドリーなソリューションは、適切な優雅劣化解決のための潜在的な可能性が低い、実装の複雑さも大きい(あなたは非常に、非常に慎重になっている場合を除く)。

また、あなたが一緒に行くことを選択した方のアプローチに影響があります。例えば、定期的に自動保存することは、のないの大幅なデータ検証が関与しているのは良い考えかもしれません。ユーザーは、いくつかのものを入力して、数秒後にエラーメッセージを取得する可能性があります。ユーザーに多少混乱するかもしれないので、失敗した検証につながった入力は、いくつかのアクションを前に、たとえば、したことがあるようインスタントフィードバックは、このような状況でユーザーにはるかに有益であろう。

ユーザーが何か(などのキー押下、チェックボックスの選択、)のユーザビリティの観点から移動するための方法であることをのように思わを変更しますが、再び、それはあなたが何をしているかに依存するたびに

の保存そして、マイナスの副作用を持つことができます。ユーザーが低速接続である場合、例えば、彼/彼女はあなたのサイトが遅いか、バグがあることを感じるかもしれません。また、古い学校よりも多くのデータベースクエリーをもたらす方法「を救うクリック」でしょう。

私はオンザスポットクライアント側の検証を組み込むことであろう上記の注意事項のいくつかを回避する明白な方法を推測するが、何エンドで動作することは、十分にどのようなあなたの<のhref = "HTTPにダウンしている可能性があり:/言うの/www.joelonsoftware.com/articles/fog0000000043.html」のrel = "noreferrer">廊下テスターます。

最終勧告:古いスタイルを作成してフォームや(あなたがより高い権威からの明確な許可がない限り)必ず物事はjavascriptをせずに壊れない作り、そこから強化「保存するために[保存]をクリックします」。それはすべてナンセンスではなかった願っています。

他のヒント

これは、すべての状況に依存します。フォームが原因ユーザー入力に変更しようとした場合、あなたは良いかもしれ変更のたびに/更新フォーム保存務めました。それ以外の場合は、明示的なユーザのアクションを待つ。

あなたがフォームの自動保存戦略を採用した場合、私は唯一の地平線上のトラブルを見ることができます..

私はこの記事が古いですけど、私は自分のフォーム上のユーザーの変更SOMのデータは、それを保存せずにページを残してしようとした場合、私は覚えてメッセージを促し、このシンプルなソリューションを好む。

グローバルの.jsでます:

var validate=false;
window.onbeforeunload = function() { if(validate) return "You made some changes, are you sure you want to leave?"; };

フォームページでは、(私はjqueryの中でそれをやった):

$('input,textarea,select').change(function(){ validate=true; });
$('form').submit(function() { validate=false; });

BR!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top