From 82764a41dd0ef3200700ed95a89aec91465ebe7b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 28 Aug 2007 06:05:45 +0100 Subject: [PATCH] rework infinite scroll request synchronization --- feedlist.js | 16 +++++++++++++++- viewfeed.js | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/feedlist.js b/feedlist.js index a8c1cd5c8..774c4d2e2 100644 --- a/feedlist.js +++ b/feedlist.js @@ -1,5 +1,6 @@ var _feed_cur_page = 0; var _infscroll_disable = 0; +var _infscroll_request_sent = 0; function viewCategory(cat) { active_feed_is_cat = true; @@ -53,6 +54,20 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) { _infscroll_disable = 0; } + if (page_offset != 0 && !subop) { + var date = new Date(); + var timestamp = Math.round(date.getTime() / 1000); + + debug("" + _infscroll_request_sent + " : " + timestamp + ""); + + if (_infscroll_request_sent && _infscroll_request_sent + 30 > timestamp) { + debug("infscroll request in progress, aborting"); + return; + } + + _infscroll_request_sent = timestamp; + } + enableHotkeys(); closeInfoBox(); @@ -134,7 +149,6 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) { } new Ajax.Request(query, { - asynchronous: page_offset == 0, onComplete: function(transport) { headlines_callback2(transport, feed, is_cat, page_offset); } }); diff --git a/viewfeed.js b/viewfeed.js index 1b26fdff6..8f7c27acb 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -175,7 +175,8 @@ function headlines_callback2(transport, active_feed_id, is_cat, feed_cur_page) { } _feed_cur_page = feed_cur_page; - + _infscroll_request_sent = 0; + notify(""); } catch (e) { exception_error("headlines_callback2", e);