mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-09-17 11:30:59 +02:00
store previous value of counters and send only diffs
This commit is contained in:
parent
1450f7530c
commit
0477a326a9
43
backend.php
43
backend.php
@ -73,7 +73,17 @@
|
||||
print "<counter id='global-unread' counter='$c_id'/>";
|
||||
}
|
||||
|
||||
function getTagCounters($link) {
|
||||
function getTagCounters($link, $smart_mode = true) {
|
||||
|
||||
if ($smart_mode) {
|
||||
if (!$_SESSION["tctr_last_value"]) {
|
||||
$_SESSION["tctr_last_value"] = array();
|
||||
}
|
||||
}
|
||||
|
||||
$old_counters = $_SESSION["tctr_last_value"];
|
||||
|
||||
$tctrs_modified = false;
|
||||
|
||||
$result = db_query($link, "SELECT tag_name,count(ttrss_entries.id) AS count
|
||||
FROM ttrss_tags,ttrss_entries,ttrss_user_entries WHERE
|
||||
@ -94,8 +104,19 @@
|
||||
$unread = $tags[$tag];
|
||||
|
||||
$tag = htmlspecialchars($tag);
|
||||
|
||||
if (!$smart_mode || $old_counters[$tag] != $unread) {
|
||||
$old_counters[$tag] = $unread;
|
||||
$tctrs_modified = true;
|
||||
print "<tag id=\"$tag\" counter=\"$unread\"/>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($smart_mode && $tctrs_modified) {
|
||||
$_SESSION["tctr_last_value"] = $old_counters;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function getLabelCounters($link) {
|
||||
@ -143,7 +164,15 @@
|
||||
print "<feed id=\"$id\" counter=\"$count\"/>";
|
||||
}
|
||||
|
||||
function getFeedCounters($link) {
|
||||
function getFeedCounters($link, $smart_mode = true) {
|
||||
|
||||
if ($smart_mode) {
|
||||
if (!$_SESSION["fctr_last_value"]) {
|
||||
$_SESSION["fctr_last_value"] = array();
|
||||
}
|
||||
}
|
||||
|
||||
$old_counters = $_SESSION["fctr_last_value"];
|
||||
|
||||
$result = db_query($link, "SELECT id,
|
||||
(SELECT count(id)
|
||||
@ -152,15 +181,25 @@
|
||||
AND unread = true AND owner_uid = ".$_SESSION["uid"].") as count
|
||||
FROM ttrss_feeds WHERE owner_uid = ".$_SESSION["uid"]);
|
||||
|
||||
$fctrs_modified = false;
|
||||
|
||||
while ($line = db_fetch_assoc($result)) {
|
||||
|
||||
$id = $line["id"];
|
||||
$count = $line["count"];
|
||||
|
||||
if (!$smart_mode || $old_counters[$id] != $count) {
|
||||
$old_counters[$id] = $count;
|
||||
$fctrs_modified = true;
|
||||
print "<feed id=\"$id\" counter=\"$count\"/>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($smart_mode && $fctrs_modified) {
|
||||
$_SESSION["fctr_last_value"] = $old_counters;
|
||||
}
|
||||
}
|
||||
|
||||
function outputFeedList($link, $tags = false) {
|
||||
|
||||
print "<html><head>
|
||||
|
Loading…
x
Reference in New Issue
Block a user