Frage

Ich bin derzeit den Aufbau einer internen Web-Anwendung in einer Fabrik / Lager Typ Standort verwendet. Die Nutzer werden einen einzigen PC zwischen mehreren Personen teilen, so brauchen wir ein ziemlich kurzes Session-Timeout haben, Menschen und die Anwendung angemeldet verlassen Abwandern zu stoppen, wo jemand anderes an den PC kommen und etwas unter dem vorherigen Benutzername des Benutzer tun.

Das Problem dabei ist, ein Session-Timeout kann, während ein Benutzer zur Zeit Informationen in ein Formular eingeben, vor allem, wenn sie eine lange Zeit in Anspruch nehmen.

Wie würden Sie damit umgehen in einer benutzerfreundlichen Art und Weise?

War es hilfreich?

Lösung

Halten Sie den Server über die Tatsache informiert, dass der Benutzer aktiv Informationen eintritt. Zum Beispiel eine Nachricht an den Server senden, wenn der Benutzer die TAB-Taste oder klickt mit der Maus auf einem Feld drückt. Die endgültige Lösung ist bis zu Ihnen.

Andere Tipps

AJAX verwenden, um regelmäßig den Inhalt der teilweise ausgefüllte Formular zu verstauen, damit sie nicht ihre Arbeit verloren haben, wenn sie durch das System gebootet bekommen. Heck, wenn Sie das tun, AJAX verwenden, um ihre Sitzung vom Ablaufen zu halten, wenn sie die Zeit der Eingabe verbringen.

Der beste Rat wäre wahrscheinlich die Benutzer zu fragen, die Browser-Fenster zu schließen, sobald sie fertig sind. Mit der Verwendung von Session-Cookies, wird die Sitzung automatisch beendet, wenn der Browser geschlossen wird oder auf andere Weise auf einer 30-minütigen Timeout (kann afaik geändert werden).

dort Da standardmäßig keine Interaktion zwischen dem Browser und dem Server, sobald eine Seite geladen wird, würden Sie einen JavaScript-Kontakt auf den Server im Hintergrund auf formular Seiten haben müssen, um die Sitzung zu aktualisieren, aber es scheint ein wenig zu viel Mühe für so ein kleines Problem.

Wenn das Session-Timeout so kurz ist, dass der Benutzer nicht die Zeit hat, in einer Form zu füllen, würde ich einen AJAX-Skript setzen, die eine HTTP-Anfrage an den Server, all paar Minuten, um die Sitzung am Leben zu halten. Ich würde tun, dass nur auf den Seiten, die der Benutzer in etwas zu füllen hat oder hat bereits begonnen, etwas zu füllen.

Eine andere Lösung wäre, eine Session-Timeout Erinnerung Skript zu verwenden, die einen Dialog Popups den Benutzer zu erinnern, dass die Sitzung wird zu einem Timeout. Das Popup sollte eine „Logout“ angezeigt und ein „Weiter mit Anwendung“, die ein Ajax-Request macht sich die Sitzungszeit zu aktualisieren.

Vielleicht ein Keep-Alive-Javascript-Prozess in diesem Fall hilfreich sein könnte. Wenn das Skript einige der wichtigsten Auslöser erfassen, senden Sie eine Nachricht an den Server „Ich bin immer noch die Eingabe von“ die Sitzung am Leben zu erhalten.

haben Sie darüber nachgedacht, die Form in kleinere Stücke brechen?

die Timeout-Monitor und ein Pop-up-Post der Benutzer, dass ihre aktuelle Sitzung auslaufen zu benachrichtigen und Gegenwart „OK“ Taste oder „Abbrechen“. OK, um die Sitzung gehen (das heißt den Zähler zurückzusetzen, um weitere 5 Minuten oder 10 Minuten - was auch immer Sie brauchen) zu halten. -Oder auf Null und damit zum Count-down Abbrechen um die Sitzung zu ermöglichen, fortzusetzen, endet
Das ist eine von vielen Möglichkeiten, es zu behandeln.

ein JavaScript „Thread“ Verwenden der Sitzung offen zu halten, ist für mich eine schlechte Idee.

Es ist gegen die Idee des Session-Timeout, das einige Ressourcen frei liegt vor, wenn es vor der Anwendung kein Benutzer ist.

Ich denke, Sie sollten das Session-Timeout mit der genaueren Zeit, anpassen, um die Form in einem „typischen normalen Gebrauch“.

zu füllen

Sie können auch proaktiv durch:

  1. mit einem JavaScript alert nicht-intrusive Warnung angezeigt wird (nicht ein Popup) an den Benutzer, bevor der Timeout abläuft, die sagen, dass die Sitzung bald abläuft (und einen Link geben eine Ajax-Anforderung zu senden, um die Timeout zurückgesetzt und entfernen diese Warnung -, die den Benutzer zu vermeiden, um das Formular verlor er zur Zeit ist die Eingabe),
  2. und haben auch ein zweites JavaScript „Faden“, die, wenn die Sitzung abgelaufen ist, mit einer SMS-Nachricht: an die Login-Seite umleiten, dass die Sitzung jetzt abgelaufen ist.

Es denkt, dass die beste ist, weil es den Anwender zu vermeiden, eine komplizierte Form für nichts zu füllen, und den Fall behandeln, wenn der Benutzer weg ist.

Als Alternative für die technischen Lösungen, können Sie Ihre Anwendung so machen könnte, dass jedes Mal eine bestimmte Aufgabe erledigt ist, beispielsweise das Ausfüllen eines Formulars, bitten Sie den Benutzer, wenn er will, tut einen anderen Job fortzusetzen, oder wenn er getan. Yould könnte einen Startbildschirm mit Menüoptionen hat und wenn der Benutzer eine Option wählt er zuerst seine Anmeldeinformationen einzugeben.

oder ein Passwort-Feld auf dem Formular platzieren. Hängt davon ab, wie viele Formen, die sie in einer Sitzung zu füllen haben.

Wenn die Benutzer Beiträge die Form und die Sitzung abgelaufen sind, sollten Sie sicherstellen, dass Sie die Formularwerte irgendwo speichern und dann den Benutzer auffordern, sich erneut anzumelden. Sobald sie erneut authentifiziert Sie können sie dann das Formular erneut vorlegen (wie keiner ihrer Daten verloren haben).

Ich hatte etwas erfordert sehr lange Sitzung entwickelt. Der Benutzer angemeldet auf einer Seite, als er auf der Maschine sitzt und nach seiner Arbeit zu tun, abgemeldet. Jetzt kann er System für ein paar Minuten oder Stunden. Um Sitzung am Leben zu halten, bis er abgemeldet, ich Timer mit Javascript verwendet, ging es um Server und aktualisiert, um eine Hymne Label mit aktuellem Uhrzeit auf dem Server.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top