summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-10-31 23:00:40 +0400
committerAndrew Dolgov <[email protected]>2012-10-31 23:00:40 +0400
commitb926f387505af6501a4afa310085880224204832 (patch)
tree716e38e8edbcd6202d67ca55a7b4c2d190b93929 /js
parent16c937680ffb01ccafcafd1b120d100db1a5495b (diff)
further improve headline appending speed
Diffstat (limited to 'js')
-rw-r--r--js/viewfeed.js16
1 files changed, 6 insertions, 10 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js
index a9c787e6e..c0cc416b6 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -116,7 +116,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
var c = dijit.byId("headlines-frame");
var ids = getSelectedArticleIds2();
- var num_added = 0;
+ var new_elems = [];
$("headlines-tmp").innerHTML = reply['headlines']['content'];
@@ -127,15 +127,13 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
$$("#headlines-tmp > div").each(function(row) {
if (row.className == 'cdmFeedTitle') {
- row.addClassName('new');
row.style.display = 'none';
c.domNode.appendChild(row);
- ++num_added;
+ new_elems.push(row);
} else if (loaded_article_ids.indexOf(row.id) == -1) {
row.style.display = 'none';
- row.addClassName('new');
c.domNode.appendChild(row);
- ++num_added;
+ new_elems.push(row);
loaded_article_ids.push(row.id);
} else {
row.parentNode.removeChild(row);
@@ -150,9 +148,9 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
c.domNode.appendChild(hsp);
}
- console.log("added " + num_added + " headlines");
+ console.log("added " + new_elems.size() + " headlines");
- if (num_added == 0)
+ if (new_elems.size() == 0)
_infscroll_disable = true;
console.log("restore selected ids: " + ids);
@@ -163,9 +161,7 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
initHeadlinesMenu();
- $$("#headlines-frame > div[class*=new]").each(
- function(child) {
- child.removeClassName('new');
+ new_elems.each(function(child) {
if (!Element.visible(child))
new Effect.Appear(child, { duration : 0.5 });
});