NotesViewNavigator a zrychlení procházení pohledu v LotusScriptu a Javě
David Marko 21 March 2011 11:13:25
Pokud jste vývojáři v Lotus Notes a pracujete(vy a vaši uživatelé) v Lotus Notes 8.5.2 může být pro vás zajímavý tip na zrychlení procházení pohledu pomocí třídy NotesViewNavigator. V LN 8.5.2 byla implementována forma kešování, kdy procházení po jednotlivých položkách pohledu již neznamená, že jsou ze serveru dotahovány jednotlivé řádky databáze, ale klient si v tomto případě dotáhne 'X' definovaných záznamů navíc v rámci jedné transakce(dotazu na server).Pro použití tohoto mechanismu jsou potřebné 3 věci:
1. v objektu pohledu NotesView je potřeba nastavit: autoUpdate = false
2. v objektu třídy NotesViewNavigator nastavte BufferMaxEntries = 400 (číslo označuje velikost vnitřního bufferu v rozsahu 2 až 400. velikost si nastavte v závislosti na typu zpracování dat, pokud procházíte celý pohled se všemi daty je vhodně využít maximální hodnotu)
3. kešování je následně vnitřně použito pouze u metod NotesViewNavigator.getNext a getPrev
Tento mechanismu kešování přináší výraznější zrychlení, pokud kód běží na klientovi, ale pracujete se s databází na serveru, kdy jsou tímto eliminovány pomalé síťové operace. Celý mechanismus kešování je transparentní a NotesViewNavigator si jeho použití (tzn. dotahování položek) řídí sám.
Příklad kódu používajícího toto nové nastavení:
' vytvořit objekt pohledu
Set view = db.getView("$All")
Set nav = view.createViewNav()
' vypnout AutoUpdate
view.AutoUpdate = False
' vytvořit objekt ViewNavigator
Set nav = view.createViewNav()
' enable cache for max buffering
nav.BufferMaxEntries = 400
- Comments [0]