diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-06-17 09:36:23 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2008-06-17 09:36:23 +0000 |
commit | 02152d0ccd11c665db7cf340d0af7e1e30143931 (patch) | |
tree | 23d2346c2711114e4882dd99f1133a5e5ac3e60b | |
parent | cfb9a0f85e5e08a190bb692ae984702ec459ca56 (diff) | |
download | vaadin-framework-02152d0ccd11c665db7cf340d0af7e1e30143931.tar.gz vaadin-framework-02152d0ccd11c665db7cf340d0af7e1e30143931.zip |
avoiding continuously growing cache when reloading page repeatedly
svn changeset:4907/svn branch:trunk
-rw-r--r-- | src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java index e0ff2b0f77..0dc7ebac21 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java @@ -615,18 +615,22 @@ public class IScrollTable extends Composite implements Table, ScrollListener, } if (enabled) { - DeferredCommand.addCommand(new Command() { - public void execute() { - if (totalRows - 1 > tBody.getLastRendered()) { - // fetch cache rows - rowRequestHandler.setReqFirstRow(tBody - .getLastRendered() + 1); - rowRequestHandler - .setReqRows((int) (pageLength * CACHE_RATE)); - rowRequestHandler.deferRowFetch(1); + // Do we need cache rows + if (tBody.getLastRendered() + 1 < firstRowInViewPort + pageLength + + CACHE_REACT_RATE * pageLength) { + DeferredCommand.addCommand(new Command() { + public void execute() { + if (totalRows - 1 > tBody.getLastRendered()) { + // fetch cache rows + rowRequestHandler.setReqFirstRow(tBody + .getLastRendered() + 1); + rowRequestHandler + .setReqRows((int) (pageLength * CACHE_RATE)); + rowRequestHandler.deferRowFetch(1); + } } - } - }); + }); + } } initializedAndAttached = true; } |