summaryrefslogtreecommitdiff
path: root/viewfeed.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-08-31 19:22:47 +0400
committerAndrew Dolgov <[email protected]>2011-08-31 19:22:47 +0400
commit452e75cc9468477972e56d48ec4494a276cb50c2 (patch)
treecec34add75b503ac81fa21c07bb99e8ab61e4f9e /viewfeed.js
parent29465278c5ef5bc220560489c3e6a26c5e4e84d9 (diff)
implement random precaching of unread feeds on timer
Diffstat (limited to 'viewfeed.js')
-rw-r--r--viewfeed.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/viewfeed.js b/viewfeed.js
index 8d4aeefd3..d5d3580da 100644
--- a/viewfeed.js
+++ b/viewfeed.js
@@ -10,6 +10,7 @@ var last_requested_article = false;
var catchup_id_batch = [];
var catchup_timeout_id = false;
var feed_precache_timeout_id = false;
+var precache_idle_timeout_id = false;
var cids_requested = [];
@@ -2108,6 +2109,29 @@ 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 = [];
+
+ 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);
+ }
+ }
+ precache_idle_timeout_id = setTimeout("precache_headlines_idle()", 5000);
+
+ } catch (e) {
+ exception_error("precache_headlines_idle", e);
+ }
+}
+
function precache_headlines() {
try {