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


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_PAGEStateless
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 = 0Beim Erzeugen der Ausgabe einer Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.
Output einer BSP (stateless)

Bei der Verarbeitung der Eingaben für eine Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.
Input für eine BSP (stateless)

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 = 1Beim Erzeugen der Ausgabe einer Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.
Output einer BSP (stateful)

Bei der Verarbeitung der Eingaben für eine Seite ist der Verarbeitungsablauf wie in der folgenden Abbildung angegeben.
Input für eine BSP (stateful)

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