0

私は、ユーザーから多くの情報を必要とする大規模な Web ページ (従来の ASP) を持っているため、多くの入力が必要です。ユーザーの行動は、時間をかけて情報を入力し、それを分析し、送信する前にその他の時間のかかるプロセスを行うことです。問題は、セッションのタイムアウトが適切な 30 分に設定されているにもかかわらず、送信時にタイムアウト メッセージが表示され、以前に入力したすべての作業が失われるという苦情がよくあることです。セッションが放棄された場合、submit イベントをチェックするのがエレガントだと思いました。その場合、ログイン フォームが表示されます。セッション チェックとログイン自体に Ajax 同期を使用することで、Web ページの状態は変更されないままになり、ユーザーはセッションが復元された後に送信を続行できます。

ただし、同期の危険性と、可能な場合は回避することをお勧めする方法について読んでいます。私にとっては、これは同期が必要なケースの 1 つであると思われますが、以前にこれを行った人は見つかりませんでした。セッションの復元に Ajax 同期を使用して、これが適切な行動方針であるかどうかについてのアドバイスを探しています。

ありがとうございました。

4

1 に答える 1

0

ここで同期リクエストを行う必要はありません。return falseフォームの送信を (または送信ハンドラーから)キャンセルしevent.preventDefault()、非同期の XMLHttpRequest を開始してチェックを実行してから、AJAX 応答ハンドラーでメッセージを表示するか、必要に応じてフォームの送信を再開します ( form.submit())。

これらの問題が発生している場合、30 分はおそらく適切なセッション タイムアウトではないことをお勧めします。タイムアウトを長くしたり、フォームからサーバーに ping を返してセッションを維持したりすることは、ユーザーにとってより便利な方法かもしれません。

于 2010-10-05T15:45:07.647 に答える