var cache_added = [];
+var catchup_id_batch = [];
+var catchup_timeout_id = false;
+
function headlines_callback2(transport, feed_cur_page) {
try {
handle_rpc_json(transport);
if (getInitParam("cdm_auto_catchup") == 1) {
- var ids = [];
-
$$("#headlines-frame > div[id*=RROW][class*=Unread]").each(
function(child) {
if ($("headlines-frame").scrollTop >
(child.offsetTop + child.offsetHeight/2)) {
- ids.push(child.id.replace("RROW-", ""));
+ var id = child.id.replace("RROW-", "");
+
+ if (catchup_id_batch.indexOf(id) == -1)
+ catchup_id_batch.push(id);
}
});
- if (ids.length > 0) {
+ if (catchup_id_batch.length > 0) {
+ window.clearTimeout(catchup_timeout_id);
+ catchup_timeout_id = window.setTimeout('catchupBatchedArticles()',
+ 1000);
+ }
+ }
- var query = "?op=rpc&subop=catchupSelected" +
- "&cmode=0&ids=" + param_escape(ids.toString());
+ } catch (e) {
+ exception_error("headlines_scroll_handler", e);
+ }
+}
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- handle_rpc_json(transport);
+function catchupBatchedArticles() {
+ try {
+ if (catchup_id_batch.length > 0) {
- ids.each(function(id) {
- var elem = $("RROW-" + id);
- if (elem) elem.removeClassName("Unread");
- });
- } });
- }
+ var query = "?op=rpc&subop=catchupSelected" +
+ "&cmode=0&ids=" + param_escape(catchup_id_batch.toString());
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ handle_rpc_json(transport);
+
+ catchup_id_batch.each(function(id) {
+ var elem = $("RROW-" + id);
+ if (elem) elem.removeClassName("Unread");
+ });
+
+ catchup_id_batch = [];
+ } });
}
+
} catch (e) {
- exception_error("headlines_scroll_handler", e);
+ exception_error("catchupBatchedArticles", e);
}
}