From 5b55e9e25cfca0229f1e00aee6a9aee6c1510611 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 1 Feb 2013 13:09:43 +0400 Subject: js: simplify counter updating, remove some unused stuff --- js/feedlist.js | 59 ++++++++++++++++++++++++---------------------------------- js/tt-rss.js | 56 ++++--------------------------------------------------- js/viewfeed.js | 6 ++++-- 3 files changed, 32 insertions(+), 89 deletions(-) (limited to 'js') diff --git a/js/feedlist.js b/js/feedlist.js index e66fcb45d..f4196a726 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -3,8 +3,6 @@ var _infscroll_request_sent = 0; var _search_query = false; var _viewfeed_last = 0; -var counter_timeout_id = false; - var counters_last_request = 0; function viewCategory(cat) { @@ -218,7 +216,8 @@ function feedlist_init() { hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); - setTimeout("timeout()", 5000); + request_counters(true); + timeout(); setTimeout("precache_headlines_idle()", 15000); } catch (e) { @@ -226,46 +225,34 @@ function feedlist_init() { } } -function request_counters_real() { - try { - console.log("requesting counters..."); - - var query = "?op=rpc&method=getAllCounters&seq=" + next_seq(); - - query = query + "&omode=flc"; - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - try { - handle_rpc_json(transport); - } catch (e) { - exception_error("viewfeed/getcounters", e); - } - } }); - - } catch (e) { - exception_error("request_counters_real", e); - } -} - - -function request_counters() { +function request_counters(force) { try { - - //if (getInitParam("bw_limit") == "1") return; - var date = new Date(); var timestamp = Math.round(date.getTime() / 1000); - if (timestamp - counters_last_request > 5) { + if (force || timestamp - counters_last_request > 15) { console.log("scheduling request of counters..."); - window.clearTimeout(counter_timeout_id); - counter_timeout_id = window.setTimeout("request_counters_real()", 1000); - counters_last_request = timestamp; + + var query = "?op=rpc&method=getAllCounters&seq=" + next_seq(); + + if (!force) + query = query + "&last_article_id=" + getInitParam("last_article_id"); + + console.log(query); + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + try { + handle_rpc_json(transport); + } catch (e) { + exception_error("request_counters", e); + } + } }); + } else { console.log("request_counters: rate limit reached: " + (timestamp - counters_last_request)); } @@ -567,6 +554,8 @@ function decrementFeedCounter(feed, is_cat) { if (ctr > 0) { setFeedUnread(feed, is_cat, ctr - 1); + global_unread = global_unread - 1; + updateTitle(); if (!is_cat) { var cat = parseInt(getFeedCategory(feed)); diff --git a/js/tt-rss.js b/js/tt-rss.js index bfbb40684..7cbe3cfc5 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -1,14 +1,9 @@ -var total_unread = 0; var global_unread = -1; -var firsttime_update = true; var _active_feed_id = undefined; var _active_feed_is_cat = false; var hotkey_prefix = false; var hotkey_prefix_pressed = false; -var _force_scheduled_update = false; -var last_scheduled_update = false; var _widescreen_mode = false; - var _rpc_seq = 0; function next_seq() { @@ -105,8 +100,6 @@ function updateFeedList() { id: "feedTree", }, "feedTree"); - _force_scheduled_update = true; - /* var menu = new dijit.Menu({id: 'feedMenu'}); menu.addChild(new dijit.MenuItem({ @@ -176,51 +169,10 @@ function viewCurrentFeed(method) { } function timeout() { - if (getInitParam("bw_limit") == "1") return; - - try { - var date = new Date(); - var ts = Math.round(date.getTime() / 1000); - - if (ts - last_scheduled_update > 10 || _force_scheduled_update) { - - //console.log("timeout()"); - - window.clearTimeout(counter_timeout_id); - - var query_str = "?op=rpc&method=getAllCounters&seq=" + next_seq(); - - var omode; - - if (firsttime_update && !navigator.userAgent.match("Opera")) { - firsttime_update = false; - omode = "T"; - } else { - omode = "flc"; - } - - query_str = query_str + "&omode=" + omode; - - if (!_force_scheduled_update) - query_str = query_str + "&last_article_id=" + getInitParam("last_article_id"); - - //console.log("[timeout]" + query_str); - - new Ajax.Request("backend.php", { - parameters: query_str, - onComplete: function(transport) { - handle_rpc_json(transport, !_force_scheduled_update); - _force_scheduled_update = false; - } }); - - last_scheduled_update = ts; - } - - } catch (e) { - exception_error("timeout", e); + if (getInitParam("bw_limit") != "1") { + request_counters(); + setTimeout("timeout()", 60*1000); } - - setTimeout("timeout()", 3000); } function search() { @@ -960,7 +912,7 @@ function handle_rpc_json(transport, scheduled_call) { if (message == "UPDATE_COUNTERS") { console.log("need to refresh counters..."); setInitParam("last_article_id", -1); - _force_scheduled_update = true; + request_counters(true); } } diff --git a/js/viewfeed.js b/js/viewfeed.js index d6801a186..a59e28a5f 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -1650,6 +1650,8 @@ function cdmClicked(event, id) { zoomToArticle(event, id); } + request_counters(); + } catch (e) { exception_error("cdmClicked"); } @@ -2058,7 +2060,7 @@ function render_local_headlines(feed, is_cat, obj) { function precache_headlines_idle() { try { - if (!feed_precache_timeout_id) { + if (getInitParam("bw_limit") != "1" && !feed_precache_timeout_id) { if (get_timestamp() - _viewfeed_last > 120) { var feeds = dijit.byId("feedTree").getVisibleUnreadFeeds(); @@ -2084,8 +2086,8 @@ function precache_headlines_idle() { function precache_headlines() { try { + if (getInitParam("bw_limit") != "1" && !feed_precache_timeout_id) { - if (!feed_precache_timeout_id) { feed_precache_timeout_id = window.setTimeout(function() { var nuf = getNextUnreadFeed(getActiveFeedId(), activeFeedIsCat()); var nf = dijit.byId("feedTree").getNextFeed(getActiveFeedId(), activeFeedIsCat()); -- cgit v1.2.3