Lifestyle: onUnload alternative Opera

Hallo,

ich habe ein kleines Problem bzgl. des onunload events.

Der Opera/Safari führen dieses Event ja nicht aus, wenn das Fenster über den Browser geschlossen wird.

Es handelt sich bei der Webseite um eine Art Applikation. Beim öffnen des PopUps wird ein SperrEintrag in einer Datenbank gesetzt.

Wenn dieses Fenster nun geschlossen wird, soll der aufrufer aktualisiert werden. Dier Aufrufer entfernet dann die Sperre aus der Datenbank.

Da jedochd as aktualisieren über das onunload event aufgerufen wird, besteht in den genanten Browsern leider keine Möglichkeit die Sperre wieder zu entfernen.

Habt ihr dazu eine Idee, wie man das ganze lösen kann ?

  1. Onunload funktioniert auch dann nicht, wenn der Browser abstürzt oder die Verbindung unterbrochen wird.

    Du kannst in regelmäßigen Abständen (5-30 Minuten) per JavaScript oder meta refresh in einem versteckten Iframe eine status-URL aufrufen und beim Ausbleiben der Aufrufe die Sitzung schließen.

    Gruß, LX

    --
    RFC 1925, Satz 3: Mit ausreichendem Schub fliegen Schweine wunderbar. (...)
    1. Onunload funktioniert auch dann nicht, wenn der Browser abstürzt oder die Verbindung unterbrochen wird.

      Du kannst in regelmäßigen Abständen (5-30 Minuten) per JavaScript oder meta refresh in einem versteckten Iframe eine status-URL aufrufen und beim Ausbleiben der Aufrufe die Sitzung schließen.

      Gruß, LX

      wie genau sähe denn eine überprüfung via java aus, bzw. via iframe,...

      ich kann mir das gerade nicht so wirklich vorstellen

      1. Hi,

        Du kannst in regelmäßigen Abständen (5-30 Minuten) per JavaScript oder meta refresh in einem versteckten Iframe eine status-URL aufrufen und beim Ausbleiben der Aufrufe die Sitzung schließen.

        wie genau sähe denn eine überprüfung via java aus, bzw. via iframe,...

        ich kann mir das gerade nicht so wirklich vorstellen

        Du sorgst für regelmässige Requests vom Client an den Server - entweder per Iframe, in dem sich ein HTML-Dokument "selber" immer wieder neu lädt (Meta-Refresh), oder per JavaScript, also AJAX/XMLHttpRequest plus setTimeout/setInterval.

        Und aus dem Ausbleiben solcher Requests ab einem Zeitpunkt XY ziehst du dann serverseitig entsprechende Schlüsse.

        (Du brauchst natürlich irgendeinen Mechanismus, um den Client wiederzuerkennen, um die Requests zuordnen zu können. Aber auf Grund der Beschreibung des Umfeldes nehme ich an, der existiert bereits.)

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.