summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2016-03-22 12:43:18 +0300
committerAndrew Dolgov <[email protected]>2016-03-22 12:43:18 +0300
commit63c7446a791ef1b9fddc37940685a19f20dd7190 (patch)
tree4d7b5fbb37a4b98cbf4cf1d991f6239aa7824a70 /js
parent7c0d68f2076cd341ccdd14b7ba8def2750b39fa0 (diff)
headlines scroll handler: add a rate limit
Diffstat (limited to 'js')
-rw-r--r--js/feedlist.js1
-rwxr-xr-xjs/viewfeed.js10
2 files changed, 11 insertions, 0 deletions
diff --git a/js/feedlist.js b/js/feedlist.js
index a7bf05d42..a976c55bd 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -102,6 +102,7 @@ function viewfeed(params) {
_infscroll_disable = 0;
cleanup_memory("headlines-frame");
+ _headlines_scroll_offset = 0;
}
if (infscroll_req) {
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 0b37c071f..83ef3ac60 100755
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -13,6 +13,7 @@ var catchup_timeout_id = false;
var cids_requested = [];
var loaded_article_ids = [];
var _last_headlines_update = 0;
+var _headlines_scroll_offset = 0;
var current_first_id = 0;
var _catchup_request_sent = false;
@@ -1265,6 +1266,14 @@ function unpackVisibleHeadlines() {
function headlines_scroll_handler(e) {
try {
+
+ // rate-limit in case of smooth scrolling and similar abominations
+ if (e.scrollTop - _headlines_scroll_offset < 10) {
+ return;
+ }
+
+ _headlines_scroll_offset = e.scrollTop;
+
var hsp = $("headlines-spacer");
unpackVisibleHeadlines();
@@ -1273,6 +1282,7 @@ function headlines_scroll_handler(e) {
if (isCdmMode() && getInitParam("cdm_auto_catchup") == 1 &&
getSelectedArticleIds2().length <= 1 &&
getInitParam("cdm_expanded")) {
+
var rows = $$("#headlines-frame > div[id*=RROW]");
for (var i = 0; i < rows.length; i++) {