From: Matti Tahvonen Date: Tue, 17 Jun 2008 09:36:23 +0000 (+0000) Subject: avoiding continuously growing cache when reloading page repeatedly X-Git-Tag: 6.7.0.beta1~4574 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=02152d0ccd11c665db7cf340d0af7e1e30143931;p=vaadin-framework.git avoiding continuously growing cache when reloading page repeatedly svn changeset:4907/svn branch:trunk --- 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; }