]> git.wh0rd.org - tt-rss.git/commitdiff
maybe speedup headline adding a bit, maybe not
authorAndrew Dolgov <noreply@fakecake.org>
Mon, 13 Jul 2015 15:38:39 +0000 (18:38 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Mon, 13 Jul 2015 15:38:39 +0000 (18:38 +0300)
js/viewfeed.js

index 522952304b5cc812d99510bcb37787705a526fdd..8254e86b66ebda51806d222c94c7323e51d8f4d3 100644 (file)
@@ -92,19 +92,19 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
 
                                dijit.byId("headlines-frame").attr("content", "");
 
+                               var tmp = new Element("div");
+
                                reply['headlines']['content'].each(function(row) {
                                        if (loaded_article_ids.indexOf(row.id) == -1) {
                                                loaded_article_ids.push(row.id);
                                        }
 
-                                       var tmp = new Element("div");
-                                       tmp.innerHTML = row.html;
-
-                                       dojo.parser.parse(tmp.firstChild);
-                                       dijit.byId("headlines-frame").domNode.appendChild(tmp.firstChild);
-
+                                       tmp.innerHTML += row.html;
                                });
 
+                               dojo.parser.parse(tmp);
+                               dijit.byId("headlines-frame").attr("content", tmp.innerHTML);
+
                                var hsp = $("headlines-spacer");
                                if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"});
                                dijit.byId('headlines-frame').domNode.appendChild(hsp);
@@ -134,25 +134,26 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
                                        if (hsp)
                                                c.domNode.removeChild(hsp);
 
+                                       var tmp = new Element("div");
+
                                        reply['headlines']['content'].each(function(row) {
                                                if (loaded_article_ids.indexOf(row.id) == -1 || row.kind == 'feed_title') {
                                                        loaded_article_ids.push(row.id);
 
-                                                       var tmp = new Element("div");
-                                                       tmp.innerHTML = row.html;
-
-                                                       dojo.parser.parse(tmp.firstChild);
-                                                       dijit.byId("headlines-frame").domNode.appendChild(tmp.firstChild);
+                                                       tmp.innerHTML += row.html;
 
                                                }
                                        });
 
+                                       dojo.parser.parse(tmp);
+
+                                       while (tmp.hasChildNodes()) {
+                                               dijit.byId("headlines-frame").domNode.appendChild(tmp.removeChild(tmp.firstChild));
+                                       }
 
                                        if (!hsp) hsp = new Element("DIV", {"id": "headlines-spacer"});
                                        c.domNode.appendChild(hsp);
 
-                                       console.log("added " + reply['headlines']['content'].size() + " headlines");
-
                                        if (reply['headlines']['content'].size() == 0) _infscroll_disable = true;
 
                                        console.log("restore selected ids: " + ids);