Control-Lebenszyklus

Der Control-Lebenszyklus beschreibt, welche System-Funktion des Controls zu welchem Zeitpunkt durch das System aufgerufen wird. Bei dem Control-Lebenszyklus gibt es zudem eine Unterscheidung, ob sich das Control auf einer HMI-Seite befindet, für die das Vorladen aktiviert ist.

Der grundsätzliche Control-Lebenszyklus wird durch die folgende Grafik beschrieben:

Control-Lebenszyklus 1:

Erläuterungen:

  1. Der Konstruktor wird während der Control-Instanziierung aufgerufen.
  2. Die PrevInit-Funktion wird nach dem Konstruktor aufgerufen, bevor die Attribut-Setter-Funktionen aufgerufen werden.
  3. Die Attribut-Setter-Funktionen werden nach der PrevInit-Funktion aufgerufen.
  4. Die Init-Funktion wird nach den Attribut-Setter-Funktionen aufgerufen. Zu diesem Zeitpunkt sind die Control-Attribute durch die Attribut-Setter-Funktionen initialisiert und besitzen gültige Werte.
  5. Die Attach-Funktion wird nach der Init-Funktion aufgerufen, nachdem das Control zum DOM der HMI-Seite hinzugefügt wurde.
  6. Die Detach-Funktion wird aufgerufen, nachdem ein Control aus dem DOM der HMI-Seite entfernt wurde (z. B. beim Umschalten der Seite).
  7. Die Destroy-Funktion wird aufgerufen, nachdem das Control aus dem DOM der HMI-Seite entfernt wurde und das System die Controls zerstört. Zudem kann die Destroy-Funktion explizit durch eine andere Stelle aufgerufen werden (z. B. bei der Zerstörung von untergeordneten Controls).

HMI-Seite: Vorladen deaktiviert

Im Normalfall ist das Vorladen einer HMI-Seite deaktiviert (Preload this partial: false), wodurch die Controls nicht im Cache des Browsers gespeichert werden. Das erhöht die Geschwindigkeit des initialen Ladevorgangs des HMIs, kann aber zu einer Reduzierung der Ladegeschwindigkeit von einzelnen HMI-Seiten führen, auf denen viele Controls instanziiert sind.

In diesem Fall wird der Konstruktor des Controls aufgerufen, sobald die Seite geladen wird (z. B. beim Umschalten auf die Seite oder beim Laden der Startseite). Anschließend folgen die PrevInit-Funktion, die Attribut-Setter-Funktionen, die Init-Funktion und die Attach-Funktion. Sobald die Seite entladen wird (z. B. beim Wechseln auf eine andere Seite), erfolgt ein Aufruf der Detach-Funktion und anschließend die Destroy-Funktion. Der Lebenszyklus der Controls beginnt mit dem Laden der HMI-Seite erneut.

Control-Lebenszyklus 2:

HMI-Seite: Vorladen aktiviert

Ist das Vorladen für eine HMI-Seite aktiviert (Preload this partial: true), werden die Controls im Cache des Browsers gespeichert. Das erhöht die Ladegeschwindigkeit einer einzelnen HMI-Seite, kann aber zu einer Reduzierung des initialen Ladevorgangs des HMIs führen.

In diesem Fall wird der Konstruktor des Controls bereits aufgerufen, sobald der initiale Ladevorgang des HMIs durchgeführt wird. Anschließend folgen die PrevInit-Funktion, die Attribut-Setter-Funktionen und die Init-Funktion. Die Attach-Funktion des Controls wird erst aufgerufen, wenn die HMI-Seite geladen wird, auf der das Control instanziiert ist. Die Detach-Funktion wird aufgerufen, sobald die HMI-Seite entladen wird. Anschließend erfolgt kein automatischer Aufruf der Destroy-Funktion. Das Control bleibt im Cache des Browsers gespeichert und sobald die HMI-Seite erneut geladen wird, erfolgt direkt der Aufruf der Attach-Funktion.

Control-Lebenszyklus 3: