In den 20sec. Gedenkzeit herrscht Funkstille...
Danke. Hätt ich nicht gedacht. Und gut, dass du gemessen hast.
Wir hatten damals in 4.6 mal einen in einem LotusScript Agenten programmierten Navigator. Klickte der Kunde auf eine Kategorie, dauerte es ohne Scherz 8 bis 15 Sekunden, bis die Unterkategorien erschienen. Nach dem Tage der Auslieferung fuhr der dafür verantwortliche Entwickler in den Urlaub und verabschiedete sich von dem Kunden - Einkauf von Daimler - mit den Worten: Dass das nun so lange dauert, ist ein cache-Problem. Das ist im Web so. Am Montag ist das viel schneller". Am Montag hatte ich den Kunden an der Leitung... Ich war zu dem Zeitpunkt 5 Monate Domino Anwendungsentwickler.
Ich hab das dann unter viel Ermutigung vom verzweifelten Kunden und viel Druck von meinem damaligen eher betriebswirtschaftlich orientierten Abteilungsleiter das ganze mit Formelsprache, Domino URL Syntax und JavaScript rein Clientseitig programmiert. Gibt in Formelsprache, was das in Ansichtspalten die Kategorisierung des Dokuments in einer 1.1.1... 1.1.2 ... etc. als special text ausgibt. Das läßt sich zwar nicht mit Formelsprache aber mit dynamisch generierten JavaScript verarbeiten. Darauf beruhte das damals. Waren aber kleine Resultsets. Damit liefen wir völlig aus dem Budget, ansonsten hätte das aber auch vor Gericht enden können. Ich war damals auch gehaltsmässig echt günstig.
Lange Rede, kurzer Sinn: Du mußt irgendwie versuchen die Menge der übertragenen Dokumente beschränken. start=1&count=n, aber das verträgt sich afaik nicht wirklich gut mit Domino Kategorien.
Vielleicht kategorisierte Ansichten und dann jeweils nur 1 Kategorie anzeigen.
...in JSF Welt glauben auch viele, dass es ein "echtes paging" als Komponente dabei wäre. Also was, das gegen Oracle in etwa so macht:
select *
from ( select a.*, rownum rnum
from ( YOUR_QUERY_GOES_HERE -- including the order by ) a
where rownum <= MAX_ROWS )
where rnum >= MIN_ROWS
Das kanns natürlich gar nicht geben. Muss man selber implementieren.
Die bestehenden Komponenten liefern out of the box nur, dass von einem großen geladenen Resultset alles im Managed Bean gehalten wird und die Client Komponente sich immer nur 1 Teil
in den Browser zieht. Aber bei großen Resultset dauert natürlich schon das holen der Einträge von der Datenbank ins Managed Bean viel zuviel Zeit.