summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-31 22:55:35 +0400
committerAndrew Dolgov <[email protected]>2012-10-31 22:55:35 +0400
commit16c937680ffb01ccafcafd1b120d100db1a5495b (patch)
tree8c90f893537d47087c80801acd272da42cdaf51d /js
parent32532f1c0f6a997060ee050654787b2bfa3329a6 (diff)
increase headline appending/dupe checking performance
Diffstat (limited to 'js')
-rw-r--r--js/viewfeed.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 7daf02126..a9c787e6e 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -13,6 +13,7 @@ var feed_precache_timeout_id = false;
var precache_idle_timeout_id = false;
var cids_requested = [];
+var loaded_article_ids = [];
var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null;
@@ -78,6 +79,8 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
//var runtime_info = reply['runtime-info'];
if (offset == 0 && infscroll_req == false) {
+ loaded_article_ids = [];
+
dijit.byId("headlines-frame").attr('content',
reply['headlines']['content']);
@@ -85,8 +88,10 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
reply['headlines']['toolbar']);
$$("#headlines-frame > div[id*=RROW]").each(function(row) {
- if ($$("#headlines-frame DIV[id="+row.id+"]").length > 1) {
+ if (loaded_article_ids.indexOf(row.id) != -1) {
row.parentNode.removeChild(row);
+ } else {
+ loaded_article_ids.push(row.id);
}
});
@@ -126,11 +131,12 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
row.style.display = 'none';
c.domNode.appendChild(row);
++num_added;
- } else if ($$("#headlines-frame DIV[id="+row.id+"]").length == 0) {
+ } else if (loaded_article_ids.indexOf(row.id) == -1) {
row.style.display = 'none';
row.addClassName('new');
c.domNode.appendChild(row);
++num_added;
+ loaded_article_ids.push(row.id);
} else {
row.parentNode.removeChild(row);
}