Mit dem jadice-Dokumentenmodell ist es möglich, ein logisches Dokument zu definieren, das aus mehreren physikalischen Dokumenten besteht. Lädt man ein solches Composite-Dokument nun, werden normalerweise alle Teildokumente unabhängig davon geladen, welche Teildokumente wirklich benötigt werden.
Um die initiale Ladedauer und die Ressourcenverwendung solcher Dokumente zu optimieren, ist es möglich, die verschiedenen Teildokumente jeweils erst dann zu laden, wenn diese benötigt werden. Mit der LazyLoading-Funktionalität kann das Laden auf die Teildokumente beschränkt werden, die gerade benötigt werden (zum Beispiel zur Anzeige). Bei Funktionen, die das gesamte Dokument betreffen (zum Beispiel die Textsuche oder der Export), werden alle restlichen Teildokumente nachgeladen.
Die LazyLoading-Funktionalität wird dadurch realisiert, dass zunächst ein
LazyStreamPageSegment
als Platzhalter für das eigentliche PageSegment
eingefügt wird. Erst wenn dieser Platzhalter gerendert werden soll, werden die
eigentlichen Inhalte geladen und gerendert.
Dazu müssen die Inhalte, die lazy geladen werden sollen müssen als
LazyStreamPageSegment
zu Seiten des Dokuments hinzugefügt werden. Bei Aufruf der
createRendering()
-Methode des LazyStreamPageSegment
wird dann
zunächst geprüft, ob der zugrundeliegende Stream bereits geladen wurde. Anschließend
wird wenn nötig der Stream gelesen und anschließend gerendert.f