Die beste Methode, um das Schließen / Navigieren des Browsers zu einer anderen Seite zu erkennen und sich abzumelden

8

Ich schreibe eine Anwendung in GWT und ich muss erkennen, wenn ein Benutzer von meiner Anwendung weg navigiert oder wenn er das Browserfenster schließt (onUnload-Ereignis) und eine Abmeldung durchführt (Sitzungsinvalidierung und einige andere Bereinigungsaufgaben). Die Abmeldeaktion wird von einem Servlet ausgeführt.

Ich mache dies gerade, indem ich mich in das Ereignis onUnload () eingehe und ein neues Fenster öffne, das auf das Logout-Servlet zeigt.

Gibt es einen besseren Weg, dies zu tun? Alle anderen Vorschläge sind willkommen.

    
Saravanan M 20.05.2009, 15:02
quelle

4 Antworten

5

Sieht so aus, als hätte GWT genau dafür ein Ereignis.

ClosingEvent .

Sieht so aus, als müssten Sie ein ClosingHandler

    
Carnell 20.05.2009, 15:40
quelle
2

Warum nicht einfach ein sehr kurzlebiges Session-Cookie erstellen, das bei jedem Laden der Seite zurückgesetzt wird, und dann ein Tracking-Cookie hinzufügen. Wenn der Benutzer zurückkehrt, bemerken Sie den Tracking-Cookie, aber keinen Session-Cookie. Beenden Sie die Sitzung und löschen Sie an diesem Punkt alles.

Pop-up-Blocker verhindern, dass Ihre Sitzung bereinigt wird, wenn sie das geöffnete onUnload-Fenster blockiert, da dies von Spammern verwendet wird.

    
Bjorn Tipling 20.05.2009 15:04
quelle
1

So funktioniert das Closing-Event:

%Vor%

Dann gibt GWT dem Benutzer die Möglichkeit, Ja oder Nein zu sagen. Natürlich können Sie auch einen Test hinzufügen, um zu sehen, ob sie nicht gespeicherte Daten haben oder was immer Sie wollen. Wenn Sie die Nachricht nicht setzen oder auf Null setzen, wird nichts unternommen.

    
Bill Lyons 09.11.2010 22:56
quelle
0

Der Weg dahin ist, die Window.addWindowClosingHandler wie @Carnell und @BillLyons zu verwenden. Aber ich verwende eine zusätzliche Technik, um zu erkennen, ob der Browser geschlossen wurde oder ob die Seite erneut besucht wird (durch Auffrischen oder Zurück-Navigation).

Folgend gibt es eine Hilfsklasse, die Ihnen helfen kann. Rufen Sie einfach die Zeilen unten in Ihrem onModuleLoad zum Testen auf.

Das Anwendungsbeispiel :

%Vor%

Die Dienstprogrammklasse :

%Vor%     
Italo Borssatto 21.02.2013 00:28
quelle

Tags und Links