asynchronous feed updating

This commit is contained in:
Andrew Dolgov 2005-08-23 07:13:28 +01:00
parent b82af8c382
commit 525116d484
2 changed files with 42 additions and 10 deletions

View File

@ -17,11 +17,13 @@
$subop = $_GET["subop"]; $subop = $_GET["subop"];
if ($subop == "forceUpdateAll") { if ($subop == "forceUpdateAllFeeds") {
print "[rpc] forceUpdateAll";
update_all_feeds($link, true); update_all_feeds($link, true);
} }
if ($subop == "updateAll") { if ($subop == "updateAllFeeds") {
print "[rpc] updateAll";
update_all_feeds($link, false); update_all_feeds($link, false);
} }
@ -49,7 +51,7 @@
pg_query("UPDATE ttrss_entries SET last_read = NOW(),unread = false"); pg_query("UPDATE ttrss_entries SET last_read = NOW(),unread = false");
} }
update_all_feeds($link, $fetch); // update_all_feeds($link, $fetch);
$result = pg_query("SELECT *, $result = pg_query("SELECT *,
(SELECT count(id) FROM ttrss_entries (SELECT count(id) FROM ttrss_entries
@ -101,7 +103,7 @@
print "<p align=\"center\">All feeds: print "<p align=\"center\">All feeds:
<a class=\"button\" <a class=\"button\"
href=\"javascript:updateFeedList(false,true)\">Update</a>"; href=\"javascript:scheduleFeedUpdate()\">Update</a>";
print "&nbsp;<a class=\"button\" print "&nbsp;<a class=\"button\"
href=\"javascript:catchupAllFeeds()\">Mark as read</a></p>"; href=\"javascript:catchupAllFeeds()\">Mark as read</a></p>";

View File

@ -4,8 +4,10 @@
*/ */
var xmlhttp = false; var xmlhttp = false;
var xmlhttp_rpc = false;
var total_unread = 0; var total_unread = 0;
var first_run = true;
/*@cc_on @*/ /*@cc_on @*/
/*@if (@_jscript_version >= 5) /*@if (@_jscript_version >= 5)
@ -24,6 +26,8 @@ try {
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest(); xmlhttp = new XMLHttpRequest();
xmlhttp_rpc = new XMLHttpRequest();
} }
function printLockingError() { function printLockingError() {
@ -49,7 +53,12 @@ function feedlist_callback() {
update_title(); 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 updateFeedList(called_from_timer, fetch) { function scheduleFeedUpdate() {
if (called_from_timer != true) { notify("Updating feeds in background...");
//document.getElementById("feeds").innerHTML = "Loading feeds, please wait...";
notify("Updating feeds..."); 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(silent, fetch) {
if (silent != true) {
notify("Updating feed list...");
} }
var query_str = "backend.php?op=feeds"; var query_str = "backend.php?op=feeds";