From 02152d0ccd11c665db7cf340d0af7e1e30143931 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 17 Jun 2008 09:36:23 +0000 Subject: [PATCH] avoiding continuously growing cache when reloading page repeatedly svn changeset:4907/svn branch:trunk --- .../terminal/gwt/client/ui/IScrollTable.java | 26 +++++++++++-------- 1 file 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; } -- 2.39.5