From 9a7942916254da71ea762d7d05f4626273dc3df6 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 13 Jan 2013 11:05:32 +0100 Subject: PagingTableService: o Preventing sending too many queries. Sending the latest query when the previous one completes. --- .../resources/webapp/apps/core/PagingTableService.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/resources/webapp/apps/core/PagingTableService.js b/src/main/resources/webapp/apps/core/PagingTableService.js index 86d08f1..a2d53f9 100755 --- a/src/main/resources/webapp/apps/core/PagingTableService.js +++ b/src/main/resources/webapp/apps/core/PagingTableService.js @@ -11,7 +11,12 @@ function PagingTableService() { queryStart: 0 }; - var update = function(){ + var update = function () { + var query = self.query; + if (self.currentlySearching) { + console.log("query active, storing =", query); + return; + } self.currentlySearching = true; self.queryStart = new Date().getTime(); @@ -20,16 +25,22 @@ function PagingTableService() { $scope.$apply(); }, 500); - fetchCallback(self.startIndex, self.count, self.query, function(data) { + fetchCallback(self.startIndex, self.count, query, function (data) { var now = new Date().getTime(); console.log("Query took " + (now - self.queryStart) + "ms"); clearInterval(interval); self.rows = data.rows; - watcher(); self.currentlySearching = false; self.queryStart = 0; + + if(self.query != query) { + console.log("Had a new query requested, sending. query =", query, ", self.query =", self.query); + update(); + } + + watcher(); }); }; @@ -115,7 +126,7 @@ function PagingTableService() { if(count) { args.count = count; } - if(query) { + if(query || query == "") { args.query = query; } console.log("Fetching page. args =", args); -- cgit v1.2.3