]> source.dussan.org Git - vaadin-framework.git/commitdiff
avoiding continuously growing cache when reloading page repeatedly
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 17 Jun 2008 09:36:23 +0000 (09:36 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 17 Jun 2008 09:36:23 +0000 (09:36 +0000)
svn changeset:4907/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IScrollTable.java

index e0ff2b0f77f7b414a0e90ba6508176eddfeae9ea..0dc7ebac21825eac4f1832d9dfbb73e154ae1876 100644 (file)
@@ -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;
     }