]> git.wh0rd.org - tt-rss.git/commitdiff
only precache_headlines_idle() when actually idle
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 14 Aug 2012 15:30:49 +0000 (19:30 +0400)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 14 Aug 2012 15:30:49 +0000 (19:30 +0400)
js/feedlist.js
js/functions.js
js/viewfeed.js

index c8260f3671e99096c9cc70bc9c96886a804b36ee..f915bce5eb987624b5b6ae434a7966bdacf9b293 100644 (file)
@@ -1,6 +1,7 @@
 var _infscroll_disable = 0;
 var _infscroll_request_sent = 0;
 var _search_query = false;
+var _viewfeed_last = 0;
 
 var counter_timeout_id = false;
 
@@ -106,6 +107,8 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
                                dijit.byId("content-tabs").getChildren()[0]);
 
                if (!background) {
+                       _viewfeed_last = get_timestamp();
+
                        if (getActiveFeedId() != feed || offset == 0) {
                                active_post_id = 0;
                                _infscroll_disable = 0;
@@ -121,8 +124,7 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
                        }
 
                        if (offset != 0 && !method) {
-                               var date = new Date();
-                               var timestamp = Math.round(date.getTime() / 1000);
+                               var timestamp = get_timestamp();
 
                                if (_infscroll_request_sent && _infscroll_request_sent + 30 > timestamp) {
                                        //console.log("infscroll request in progress, aborting");
index b2d79dc567a012eed2a01a4a6006936ab90d0f7e..578172c77b0ccaa05ed94ccb0c5b4d5c5b919300 100644 (file)
@@ -393,20 +393,6 @@ function getURLParam(param){
        return String(window.location.href).parseQuery()[param];
 }
 
-function leading_zero(p) {
-       var s = String(p);
-       if (s.length == 1) s = "0" + s;
-       return s;
-}
-
-function make_timestamp() {
-       var d = new Date();
-
-       return leading_zero(d.getHours()) + ":" + leading_zero(d.getMinutes()) +
-                       ":" + leading_zero(d.getSeconds());
-}
-
-
 function closeInfoBox(cleanup) {
        try {
                dialog = dijit.byId("infoBox");
@@ -1718,3 +1704,8 @@ function get_radio_checked(radioObj) {
        }
        return("");
 }
+
+function get_timestamp() {
+       var date = new Date();
+       return Math.round(date.getTime() / 1000);
+}
index 92a610f8d7eafe8e8364bec367ffb2c8a97583bf..7c21e108534dd8b855698bf30b5d383c02f1241e 100644 (file)
@@ -2057,17 +2057,20 @@ function render_local_headlines(feed, is_cat, obj) {
 function precache_headlines_idle() {
        try {
                if (!feed_precache_timeout_id) {
-                       var feeds = dijit.byId("feedTree").getVisibleUnreadFeeds();
-                       var uncached = [];
+                       if (get_timestamp() - _viewfeed_last > 120) {
 
-                       feeds.each(function(item) {
-                               if (parseInt(item[0]) > 0 && !cache_get("feed:" + item[0] + ":" + item[1]))
-                                       uncached.push(item);
-                       });
+                               var feeds = dijit.byId("feedTree").getVisibleUnreadFeeds();
+                               var uncached = [];
+
+                               feeds.each(function(item) {
+                                       if (parseInt(item[0]) > 0 && !cache_get("feed:" + item[0] + ":" + item[1]))
+                                               uncached.push(item);
+                               });
 
-                       if (uncached.length > 0) {
-                               var rf = uncached[Math.floor(Math.random()*uncached.length)];
-                               viewfeed(rf[0], '', rf[1], 0, true);
+                               if (uncached.length > 0) {
+                                       var rf = uncached[Math.floor(Math.random()*uncached.length)];
+                                       viewfeed(rf[0], '', rf[1], 0, true);
+                               }
                        }
                }
                precache_idle_timeout_id = setTimeout("precache_headlines_idle()", 1000*30);