Anfang des InhaltsbereichsHintergrunddokumentation Kontrollfluss von BSPs Dokument im Navigationsbaum lokalisieren

Überblick

Der Kontrollfluss einer Seite wird in der folgenden Abbildung schematisch dargestellt:

Diese Grafik wird im zugehörigen Text erklärt

 

Hinweis

Es müssen nicht alle Eventhandler verwendet werden, z.B. kann eine BSP lediglich aus dem Layout bestehen, oder sie beinhaltet nur das Layout, OnInitialization und OnInputProcessing.

Da der Eventhandler OnDestroy nur ganz selten verwendet wird, spielt er hier keine Rolle.

Hier sind die folgenden Fälle zu unterscheiden:

Siehe auch:

Interface IF_BSP_PAGE

Stateless

Im stateless Fall wird der Kontext jedes Mal erstellt, wenn ein Request empfangen wird. Der Kontext wird immer dann zerstört, wenn die Response gesendet wird.

Für die BSP-Laufzeit bedeutet stateless: runtime->keep_context = 0

Beim Erzeugen der Ausgabe einer Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.

Output einer BSP (stateless)

Diese Grafik wird im zugehörigen Text erklärt

Bei der Verarbeitung der Eingaben für eine Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.

Input für eine BSP (stateless)

Diese Grafik wird im zugehörigen Text erklärt

 

Bei stateless BSPs (der Standard ist stateless), kann die Navigation entweder auf die gleiche Seite durchgeführt werden oder aber auf andere Seiten.

Navigation innerhalb der BSP

Beim Aufruf der Seite wird zuerst nachgesehen, ob es bereits ein Seitenobjekt für diese BSP gibt. Ist dies nicht der Fall, dann wird der Eventhandler OnCreate durchlaufen, wodurch das Seitenobjekt bzw. eine Instanz davon erzeugt wird. Daraufhin folgt der Eventhandler OnRequest. Ist bereits ein Seitenobjekt vorhanden (beim ersten Aufruf tritt dieser Fall i.d.R. nicht auf, ebenso wenig wie in stateless BSPs), so wird direkt in den Eventhandler OnRequest verzweigt. Danach folgen entweder OnInitialization, wenn keine Benutzeraktion stattfindet und OnInputProcessing, wenn Benutzeraktion stattfindet. Von OnInputProcessing aus geht es bei keiner Navigation weiter zum OnInitialization. Weiter geht es mit dem Layout und danach eventuell mit dem OnManipulation, wobei dieser Eventhandler nur sehr selten verwendet wird. Danach wird die angeforderte Seite im Browser ausgegeben. Nun kann Benutzeraktion stattfinden und der Verarbeitungsablauf beginnt erneut.

Navigation auf andere BSPs

Der Verarbeitungsablauf ist ganz ähnlich wie in dem Fall, dass innerhalb einer BSP navigiert wird. Wenn nun aus dem OnRequest eine Navigation auf eine andere Seite stattfindet, dann wird der Eventhandler OnInputProcessing aufgerufen und ausgewertet. Es folgt OnInitialization, danach das Layout, etc.

Stateful

Im stateful Fall wird der Kontext von einem Request zum nächsten gehalten.

Für die BSP-Laufzeit bedeutet stateful: runtime->keep_context = 1

Beim Erzeugen der Ausgabe einer Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.

Output einer BSP (stateful)

Diese Grafik wird im zugehörigen Text erklärt

 

Bei der Verarbeitung der Eingaben für eine Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.

Input für eine BSP (stateful)

Diese Grafik wird im zugehörigen Text erklärt

 

Bei stateful BSPs sind drei verschiedene Varianten der Lebensdauer möglich:

Die Seite wird zerstört, wenn eine andere Seite verwendet wird.

Die Seite wird nach jedem einzelnen Request zerstört, d.h. sie ist nur für die Dauer jeweils eines Requests vorhanden.

Die Seite wird am Ende der Session zerstört.

Beispiele

Ende des Inhaltsbereichs