11

現在、工場/倉庫タイプの場所で使用される内部 Web アプリケーションを構築しています。ユーザーは複数のユーザーで 1 台の PC を共有するため、セッション タイムアウトをかなり短くして、他のユーザーが PC にアクセスして前のユーザーのユーザー名で何かを実行できるように、ユーザーがアプリケーションをログインしたまま放っておいてしまうのを防ぐ必要があります。

これに関する問題は、ユーザーが現在フォームに情報を入力している間に、特に時間がかかる場合に、セッションがタイムアウトになる可能性があることです。

ユーザーフレンドリーな方法でこれをどのように処理しますか?

4

11 に答える 11

3

AJAX を使用して、部分的に入力されたフォームの内容を定期的に隠して、システムによって起動された場合に作業が失われないようにします。それを行ったら、AJAX を使用して、入力に時間を費やした場合にセッションがタイムアウトしないようにします。

于 2008-09-22T11:29:23.847 に答える
3

ユーザーがアクティブに情報を入力しているという事実をサーバーに通知します。たとえば、ユーザーが TAB キーを押すか、マウスでフィールドをクリックすると、サーバーにメッセージを送信します。最終的な解決策はあなた次第です。

于 2008-09-22T11:30:31.067 に答える
2

最善のアドバイスは、おそらく、作業が終わったらブラウザ ウィンドウを閉じるようにユーザーに依頼することです。セッション Cookie を使用すると、ブラウザが閉じられたとき、または 30 分のタイムアウト時にセッションが自動的に終了します (変更可能)。

デフォルトでは、ページが読み込まれるとブラウザとサーバーの間でやり取りが行われないため、フォームページのバックグラウンドで javascript をサーバーに接続してセッションを更新する必要がありますが、そんな些細な問題。

于 2008-09-22T11:28:51.287 に答える
2

セッションのタイムアウトが短すぎてユーザーがフォームに入力する時間がない場合は、数分ごとにサーバーに http 要求を送信する AJAX スクリプトを配置して、セッションを維持します。ユーザーが何かを入力する必要があるか、すでに何かを入力し始めているページでのみそれを行います。

もう 1 つの解決策は、ダイアログをポップアップして、セッションがタイムアウトに近づいていることをユーザーに通知するセッション タイムアウト リマインダー スクリプトを使用することです。ポップアップには、セッション タイムアウトを更新する ajax リクエストを行う「ログアウト」と「アプリケーションの使用を続行」が表示されます。

于 2008-09-22T11:34:53.083 に答える
1

この場合、キープアライブ JavaScript プロセスが役立つ可能性があります。スクリプトがいくつかの重要なトリガーをキャプチャすると、「まだ入力中です」というメッセージがサーバーに送信され、セッションが維持されます。

于 2008-09-22T11:29:26.717 に答える
1

タイムアウトを監視し、ポップアップを投稿して、現在のセッションが期限切れになることをユーザーに通知し、[OK] または [キャンセル] ボタンを提示します。[OK] をクリックしてセッションを続行します (つまり、カウンターを別の 5 分または 10 分にリセットします。必要に応じて)。または [キャンセル] をクリックすると、セッションのカウントダウンがゼロになり、終了します。
これは、それを処理する多くの方法の 1 つです。

于 2008-09-22T12:19:42.553 に答える
1

JavaScript の「スレッド」を使用してセッションを開いたままにしておくことは、私にとっては悪い考えです。

アプリケーションの前にユーザーがいない場合に一部のリソースを解放するために存在するセッションタイムアウトの考えに反しています。

「典型的な通常の使用」でフォームに入力するには、セッションタイムアウトをより正確な時間に調整する必要があると思います。

次のことも積極的に行うことができます。

  1. タイムアウトが期限切れになる前に、非侵入型の警告 (ポップアップではなく) をユーザーに表示する JavaScript アラートを設定します。これは、セッションが間もなく期限切れになることを示します (そして、タイムアウトをリセットしてその警告を削除するための ajax 要求を送信するためのリンクを提供します -これにより、ユーザーが現在入力しているフォームを失うことがなくなります)、
  2. また、2 つ目の JavaScript「スレッド」もあり、セッションが期限切れになった場合、ログイン ページにリダイレクトされ、セッションが期限切れになったことを示すメッセージが表示されます。

ユーザーが複雑なフォームに無駄に入力することを回避し、ユーザーが離れた場合のケースを処理するため、それが最善であると考えています。

于 2008-09-22T12:50:48.500 に答える
1

フォームを小さなチャンクに分割することを検討しましたか?

于 2008-09-22T11:41:46.500 に答える
0

私は非常に長いセッションを必要とするものを開発しました。ユーザーは、マシンに座っているときにページにログインし、作業を行った後、ログアウトしました。現在、彼はシステムを数分から数時間使用している可能性があります。彼がログアウトするまでセッションを維持するために、javascriptでタイマーを使用し、サーバーに行き、サーバー上の現在の時刻で国歌ラベルを更新しました。

于 2008-09-22T12:37:06.163 に答える
0

ユーザーがフォームを投稿してセッションがタイムアウトした場合は、フォームの値をどこかに保存してから、ユーザーに再度ログインするように依頼する必要があります。彼らがあなたを再認証したら、フォームを再送信できます (データは失われていないため)。

于 2008-09-22T12:15:15.390 に答える
0

技術的な解決策の代わりとして、たとえばフォームへの入力など、特定の作業が完了するたびに、ユーザーが別の作業を続けたいのか、それとも完了したのかをユーザーに尋ねるようにアプリケーションを作成することができます。メニュー オプションを含むスタート画面を用意できます。ユーザーがオプションを選択した場合、最初に資格情報を入力する必要があります。

または、フォームにパスワード フィールドを配置します。セッションで記入するフォームの数によって異なります。

于 2008-09-22T11:43:12.110 に答える