From 525116d484a7a2589fc8ad891af3e14ff07a3724 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 23 Aug 2005 07:13:28 +0100 Subject: asynchronous feed updating --- tt-rss.js | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'tt-rss.js') diff --git a/tt-rss.js b/tt-rss.js index c78a4287d..125dbad76 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -4,8 +4,10 @@ */ var xmlhttp = false; +var xmlhttp_rpc = false; var total_unread = 0; +var first_run = true; /*@cc_on @*/ /*@if (@_jscript_version >= 5) @@ -24,6 +26,8 @@ try { if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); + xmlhttp_rpc = new XMLHttpRequest(); + } function printLockingError() { @@ -49,7 +53,12 @@ function feedlist_callback() { update_title(); } - notify(""); + if (first_run) { + scheduleFeedUpdate(); + first_run = false; + } else { + notify(""); + } } } @@ -92,12 +101,33 @@ function view_callback() { } } +function refetch_callback() { + if (xmlhttp_rpc.readyState == 4) { + // feeds are updated in background + updateFeedList(false, false); +// notify("All feeds updated"); + } +} + +function scheduleFeedUpdate() { + + notify("Updating feeds in background..."); + + var query_str = "backend.php?op=rpc&subop=forceUpdateAllFeeds"; + + if (xmlhttp_rpc.readyState == 4 || xmlhttp_rpc.readyState == 0) { + xmlhttp_rpc.open("GET", query_str, true); + xmlhttp_rpc.onreadystatechange=refetch_callback; + xmlhttp_rpc.send(null); + } else { + printLockingError(); + } +} -function updateFeedList(called_from_timer, fetch) { +function updateFeedList(silent, fetch) { - if (called_from_timer != true) { - //document.getElementById("feeds").innerHTML = "Loading feeds, please wait..."; - notify("Updating feeds..."); + if (silent != true) { + notify("Updating feed list..."); } var query_str = "backend.php?op=feeds"; -- cgit v1.2.3