diff options
author | Andrew Dolgov <[email protected]> | 2012-10-31 22:55:35 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-10-31 22:55:35 +0400 |
commit | 16c937680ffb01ccafcafd1b120d100db1a5495b (patch) | |
tree | 8c90f893537d47087c80801acd272da42cdaf51d /js/viewfeed.js | |
parent | 32532f1c0f6a997060ee050654787b2bfa3329a6 (diff) |
increase headline appending/dupe checking performance
Diffstat (limited to 'js/viewfeed.js')
-rw-r--r-- | js/viewfeed.js | 10 |
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); } |