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

1Martin Jinoch  22.03.2011 10:54:50  NotesViewNavigator a zrychlení procházení pohledu v LotusScriptu a Javě

nemáte v "WE ARE BLOGGING ABOUT LOTUS NOTES ... WE DO IT FOR MORE THAT 15 YEARS" malou chybku?

TOPlist