Globalen Timer setzen, der gesteuert werden kann

Hallo,
ich greife mal wieder mein Thema des TimeOuts an, weil es mich (und den User) nervt, wenn die Session abgelaufen ist, man eine Aktion ausführen will und dann erst Umgeleitet wird mit der Meldung „Session ist zuende“.
Ich habe mir folgendes gedacht: Man könnte einen Timer setzen, der Als SessionObjekt läuft, der wird dann bei jeder Aktion der einzelnen Seiten zurückgesetzt. Wird er nicht zurückgesetzt, leitet der Timer wunderschön auf eine TimeOut Seite wo dann die Session beendet wird…

Ich könnte als Ablaufpunkt „now + 20 min“ nehmen und in einer Schleife abfragen (Die sollte allerdings nur ca 1x/Minute laufen aus Performance) ob das aktuelle now schon „drüber“ liegt.
In den einzelnen Seiten setze ich dann die Globale Variable wieder auf „now+10min“.

Weiss jemand wie ich diesen Timer Global am besten programmieren könnte? In der Global.asa?

hi,

das problem hier ist ja wohl änhnlich wie bei meinem posting etwas weiter unten (das nächste :smile:). verarbeitung im hintergrund. ich würde eine com-komponente vorschlagen, die in einem neuen theard läuft und durch interrupts unterbrochen werden kann und ansonsten die timeout site auruft.

gruss tobias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hmm, gute Idee, aber wie???
Hehe, stimmt ähnliche Problematik, leider habe ich noch ie eine COM programmiert die unabhängig läuft, und daher keine Ahnung wie so was geht… Hmm, ich bin vom Session_OnEnd Event etwas entäuscht, da ich ja nicht der einzige bin, der vorher dann noch schnell etwas ausführen will… Irgendwie muss es doch einfacher gehen, so daß vor dem Session.Abandon noch eine Sub oder so ausgeführt werden kann :frowning:
Naja, vielleicht bekommen wir ja noch ne Antwort ;o)
THX ZoMbiE

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi

Das grundsätzliche Problem bei Session_OnEnd ist ja, dass bei Ender der Session der User (sehr wahrscheinlich) gar nicht mehr auf Deiner Seite verweilt. Du könntest also keine Weiterleitung so realisieren.

Was eine Möglichkeit wäre: Das Session Timeout auf 10 zu setzen und beim Aufruf jeder Seite die Session zu beenden und wieder neu zu starten. Allfällige Session-Objekte müsstest Du natürlich via temporäre Variable im Script auch wieder neu setzen.

Greetz Sherman

Hehe, stimmt ähnliche Problematik, leider habe ich noch ie
eine COM programmiert die unabhängig läuft, und daher keine
Ahnung wie so was geht… Hmm, ich bin vom Session_OnEnd Event
etwas entäuscht, da ich ja nicht der einzige bin, der vorher
dann noch schnell etwas ausführen will… Irgendwie muss es
doch einfacher gehen, so daß vor dem Session.Abandon noch eine
Sub oder so ausgeführt werden kann :frowning:
Naja, vielleicht bekommen wir ja noch ne Antwort ;o)
THX ZoMbiE

Hallo,
danke für die Antwort.
Mein Problem bei der Sache ist nicht das Aufrufen einer Seite (da fange ich das Timeout ab, da ja keine Session mehr gültig ist) sondern die Wahrscheinlichkeit, das jemand die Seite offen lässt und den Arbeitsplatz verlässt. Jeder User könnte dann noch die Daten auf dem Bildschirm einsehen. Jetzt sagt ihr: Dann ist der User selber schuld, da habt ihr auch recht, aber ich würde das ganze gerne so komfortabel wie möglich machen…:smile:

Bei den Usern rechnet man ja immer mit Leuten, die sich bei anderen über ihre eigene Doofheit beschweren ;o)))

Da fällt mir ein, kann ich denn so einen Timer evtl mit JavaScript beim User laufen lassen? Der kann doch dann in einem versteckten Frame ab und zu sich selber aufrufen und beim SessionTimeout eine andere Seite aufrufen!?!
Wie könnte das aussehen?

function CHECKLOGIN() {
if != 1 {
top.main.location.href=„logout.asp“;
}
}

Aber wie programmiere ich den Timer, der sich selber alle 2 oder 3 min mit:
this.location.reload();
aufruft???

Danke, ZoMbiE

Hi

Das grundsätzliche Problem bei Session_OnEnd ist ja, dass bei
Ender der Session der User (sehr wahrscheinlich) gar nicht
mehr auf Deiner Seite verweilt. Du könntest also keine
Weiterleitung so realisieren.

Was eine Möglichkeit wäre: Das Session Timeout auf 10 zu
setzen und beim Aufruf jeder Seite die Session zu beenden und
wieder neu zu starten. Allfällige Session-Objekte müsstest Du
natürlich via temporäre Variable im Script auch wieder neu
setzen.

Greetz Sherman

Hehe, stimmt ähnliche Problematik, leider habe ich noch ie
eine COM programmiert die unabhängig läuft, und daher keine
Ahnung wie so was geht… Hmm, ich bin vom Session_OnEnd Event
etwas entäuscht, da ich ja nicht der einzige bin, der vorher
dann noch schnell etwas ausführen will… Irgendwie muss es
doch einfacher gehen, so daß vor dem Session.Abandon noch eine
Sub oder so ausgeführt werden kann :frowning:
Naja, vielleicht bekommen wir ja noch ne Antwort ;o)
THX ZoMbiE

Hallo

Um die Seite automatisch zu reloaden hast Du zwei Möglichkeiten:
Ein Meta-Tag oder eben mit JavaScript.

META-Tag:

JavaScript:

window.setTimeout("location.reload()",120000);

Beachte, dass bei der Meta-Angabe die Zeit in Sekunden und beim JavaScript in Millisekunden angegeben wird.

Greetz Sherman

Da fällt mir ein, kann ich denn so einen Timer evtl mit
JavaScript beim User laufen lassen? Der kann doch dann in
einem versteckten Frame ab und zu sich selber aufrufen und
beim SessionTimeout eine andere Seite aufrufen!?!
Wie könnte das aussehen?

function CHECKLOGIN() {
if != 1 {
top.main.location.href=„logout.asp“;
}
}

Aber wie programmiere ich den Timer, der sich selber alle 2
oder 3 min mit:
this.location.reload();
aufruft???

Danke, ZoMbiE