Beste Weg, um mit session-timeout bei web-apps?
Ich bin derzeit am Aufbau eines internen web-Anwendung in einer Fabrik/Lager-Art Lage. Der Benutzer wird durch den Austausch einer einzelnen PC zwischen mehreren Personen, so müssen wir einen ziemlich kurzen session-timeout zu verhindern, dass die Menschen Wandern ab und verlassen die Anwendung angemeldet, wo jemand anderes kann die auf das PC kommt und etwas unter dem vorherigen Benutzers Benutzername.
Das problem mit diesem ist ein session-timeout während ein Benutzer ist zurzeit die Eingabe von Informationen in ein Formular ein, vor allem, wenn Sie eine lange Zeit dauern.
Wie würden Sie den Umgang mit diesem in einer benutzerfreundlichen Art und Weise?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Halten Sie den server über die Tatsache informiert, dass der Benutzer aktiv mit der Eingabe von Informationen.
Zum Beispiel senden einer Nachricht an den server, wenn der Benutzer die TAB-Taste drückt oder klickt mit der Maus auf ein Feld.
Die endgültige Lösung ist bis zu Ihnen.
AJAX verwenden, um regelmäßig stash-die Inhalte der teilweise ausgefüllten Formular, so dass Sie nicht Ihre Arbeit verloren, wenn Sie gestartet, indem das system. Was solls, sobald Sie dies tun, verwenden Sie AJAX, um Ihre Sitzung vom timing aus, wenn Sie verbringen die Zeit mit der Eingabe.
Ist der beste Rat wäre wohl, zu Fragen der Benutzer das Browserfenster schließen, wenn Sie fertig sind. Mit der Verwendung von session-cookies, die session wird automatisch beendet, wenn der browser geschlossen wird oder sonst auf einen 30-Minuten-timeout (kann geändert werden afaik).
Da es standardmäßig keine Interaktion zwischen dem browser und dem server, sobald eine Seite geladen wird, müsste man ein javascript mit dem server im hintergrund auf forms-Seiten zu aktualisieren, die Sitzung, aber es scheint ein bisschen zu viel Mühe für so ein kleines problem.
Wenn der session-timeout so kurz ist, dass der Benutzer nicht die Zeit haben, ein Formular ausfüllen, ich würde einen AJAX-Skript, das eine http-Anforderung an den server, alle paar Minuten, um die Sitzung aktiv. Ich würde das nur auf Seiten, die der Benutzer ausfüllen etwas oder hat bereits begonnen-Füllung etwas.
Andere Lösung wäre die Verwendung einer session-timeout Erinnerung Skript, das popups ein Dialogfeld, um den Benutzer zu erinnern, dass die Sitzung über die Zeit. Das popup angezeigt werden sollen, die ein "Logout" und ein "Weiter Verwendung" das macht einen ajax-request zum aktualisieren der session time-out.
Vielleicht ein keep-alive-javascript-Prozess könnte hilfreich sein in diesem Fall. Wenn das Skript erfassen einige der Schlüssel-Trigger, senden Sie ein "ich bin immer noch die Eingabe von" - Nachricht an den server zu halten, die Sitzung lebendig.
haben Sie als Bruch der form in kleinere Stücke?
Monitor-timeout-und post-pop-up um den Benutzer zu informieren, dass Ihre aktuelle Sitzung abläuft und Gegenwart "OK" oder "Abbrechen" - buttons. OK, um die Sitzung (D. H. der Zähler zurückgesetzt, um einen anderen 5 Minuten oder 10 Minuten - was auch immer Sie brauchen) -oder - Absagen, damit die Sitzung fortsetzen, um den countdown auf null und damit Ende.
Das ist eine von vielen Möglichkeiten, es zu handhaben.
Mithilfe einer JavaScript - "thread", um die Sitzung zu öffnen ist, für mich, eine schlechte Idee.
Es ist gegen die Idee des session-timeout, das existiert, um Ressourcen frei machen, wenn es keine Nutzer vor der Anwendung.
Ich denke, Sie sollten anpassen der session-timeout mit genauer Zeit, um füllen Sie das Formular in einer "typischen normalen Gebrauch".
Sie können auch proaktiv sein, indem Sie :
Denke es ist das beste, weil es vermeiden, den Benutzer zum ausfüllen eines komplizierten Formulars für nichts, und Griff dann der Fall, wenn der Benutzer verschwunden ist.
Als alternative für die technischen Lösungen, Sie machen Ihre Anwendung so, dass jedesmal, wenn eine bestimmte Arbeit erledigt ist, zum Beispiel das ausfüllen eines Formulars, bitten Sie den Benutzer, wenn er möchte, auch weiterhin tun, einen anderen job oder wenn er fertig ist. Yould könnte haben einen Startbildschirm mit Menü-Optionen und wählt der Benutzer eine option, die er erst nach Eingabe seiner Anmeldeinformationen.
Oder setzen Sie einen Passwort-Feld auf das Formular. Hängt davon ab, wie viele Formulare Sie ausfüllen müssen, in einer Sitzung.
Wenn der Nutzer das Formular aus und Ihre Sitzung ist abgelaufen, Sie sollten stellen Sie sicher, speichern Sie das Formular Werte, die irgendwo und dann bitten Sie den Benutzer erneut anmelden. Sobald Sie haben re-authentifiziert, Sie können re-submit das Formular (da keine Daten verloren).
Hatte ich etwas entwickelt, was eine sehr lange Sitzung. Die angemeldeten Benutzer auf einer Seite, wenn er sitzen auf der Maschine, und, nachdem ich seine Arbeit, abgemeldet. Jetzt kann er die Verwendung von system für ein paar Minuten oder für Stunden. Zu halten, die session am Leben, bis er abgemeldet, ich verwendet timer mit javascript, ging es um server und aktualisiert eine Hymne label mit der aktuellen Zeit auf dem server.