2009-06-06 5 views
0

Ich entwerfe eine Top-Level-Seite, die durch die Implementierung eines Framesets entwickelt wurde. In einem Frame des Framesets werde ich JavaScript aufrufen, um die Seite regelmäßig zu aktualisieren, um sie regelmäßig (alle 10 Minuten) an eine URL zu senden. In dem anderen Rahmen des Framesets lasse ich den Benutzer die Hauptarbeit machen - lasse den Benutzer die Eingabe für ein zeitaufwendiges Formular eingeben (z. B. um einen schriftlichen Essay-Test zu haben).wird die Sitzung in meinem Szenario ablaufen?

Meine Frage ist, in meinem Szenario, denke ich, dass der Rahmen, der die wichtigsten Benutzereingabe Arbeit nie Sitzung ablaufen wird, weil der andere Rahmen aktualisiert wird? Ist dieses Verständnis korrekt? Meine Verwirrung ist, ich bin nicht sicher, ob in einem anderen Rahmen die Buchung zu einer anderen URL auf der gleichen Website den anderen Frame von Session ablaufen blockiert?

Vielen Dank im Voraus, George

Antwort

1

Sie sind richtig, dass die Sitzung am Leben halten wird.

Der Server verfolgt, wann Sie zuletzt eine Seite abgerufen und Ihre Sitzungskennung als Cookie übergeben haben. Wenn es länger als das Sitzungs-Timeoutintervall war, akzeptiert es nicht mehr die Sitzungs-ID und betrachtet Ihre Sitzung als abgelaufen.

Durch das Treffen des Servers im Hintergrund führen Sie die Sitzung aus. Beachten Sie, dass Sie keinen POST durchführen müssen. Ein einfaches GET wird ausreichen.

Hinweis: Ich nehme an, dass Ihr Sitzungszeitlimit länger als zehn Minuten ist.

+0

Wir haben verschiedene Möglichkeiten, um Sitzungs-Timeout, SciptTimeout, IIS-Website-Timeout-Einstellung und Anwendungspool-Leerlaufzeit einzustellen, welche hat die höchste Priorität? Oder mit anderen Worten, wenn wir sie alle setzen, welche wird wirksam werden? Der kleinste Wert eins oder? – George2

+0

"Der Server verfolgt, wann Sie zuletzt eine Seite abgerufen und Ihre Sitzungskennung als Cookie übergeben haben." - Solange ich etwas auf der gleichen Website finde, richtig? – George2

+1

Korrekt, gleiche Seite. Im Allgemeinen bestimmt der kleinste Wert die Sitzungslänge. Wenn Sie jedoch db-Sitzungen verwenden, bleiben diese bei einem App-Pool-Reset erhalten. – RedFilter