summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-01-22 19:29:14 +0300
committerAndrew Dolgov <[email protected]>2017-01-22 19:29:14 +0300
commita4e04c498f3178dd9b869c3080b13f35beac5b6e (patch)
tree273023a68a8a8ad3016790ff863e04e6eeedc13f /js
parente1f7b05b52904210e00ee452294e55564fcd956b (diff)
parse_counters: cache previous reply and skip processing of unchanged rows
Diffstat (limited to 'js')
-rw-r--r--js/feedlist.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/js/feedlist.js b/js/feedlist.js
index e66a0c1b6..232cf0be1 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -6,11 +6,12 @@ var _viewfeed_last = 0;
var _viewfeed_timeout = false;
var counters_last_request = 0;
+var _counters_prev = [];
-function viewCategory(cat) {
+/*function viewCategory(cat) {
viewfeed({feed: cat, is_cat: true});
return false;
-}
+}*/
function loadMoreHeadlines() {
try {
@@ -253,10 +254,18 @@ function request_counters(force) {
}
}
-function parse_counters(elems, scheduled_call) {
+function parse_counters(elems) {
try {
for (var l = 0; l < elems.length; l++) {
+ if (_counters_prev[l] &&
+ _counters_prev[l].id == elems[l].id &&
+ _counters_prev[l].updated == elems[l].updated &&
+ _counters_prev[l].counter == elems[l].counter) {
+
+ continue;
+ }
+
var id = elems[l].id;
var kind = elems[l].kind;
var ctr = parseInt(elems[l].counter);
@@ -300,6 +309,8 @@ function parse_counters(elems, scheduled_call) {
hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
+ _counters_prev = elems;
+
} catch (e) {
exception_error("parse_counters", e);
}