Hi Johannes, Please could you re-ask your question via Stack Overflow with the "qooxdoo" tag? We’re trying to build up a more public list of Q&A and it would be really helpful to have your question listed there.
http://stackoverflow.com/questions/tagged/qooxdoo Thank you. Regards Dietrich Am 03.06.2016 um 15:52 schrieb Schock, Johannes <NIVUS GmbH>: > Hello, > I try to use pooling with my qx.application, because it gives me a > significant performance boost on mobile devices (especially Android devices). > For structuring (and for setting huge widget selections to "excluded" with > one command) I use many widgets including qx.ui.core.MChildrenHandling. > After leaving a menu I iterate through all containers recursively and add > them and their children to a pool. > For widget creation I try to get an instance from the pool. > > This is working really fine but after some time I get the following error (on > Chrome for Android): > > "Uncaught HierarchyRequestError: Failed to execute 'appendChild' on 'Node': > The new child element contains the parent" > > With disposal of the Elements, everything runs fine. > This leads me to the conclusion that the objects aren't always removed from > their DOM parent which leads to recursion (the parent node is added to an old > child node). > Can someone point me in right direction how to ensure the removal of the > child nodes before pooling them? > > function getPoolElement(type) { > var elem = pool.getObject(type); > //console.log(type.toString() + " " + elem.$$hash + " " + elem.classname); > return elem; > } > > function poolElements(container) { > var children = container.removeAll(); > for(var i = 0; i < children.length; i++) { > if(children[i].classname == "guibuilder.group") > poolElements(children[i]); > else if(children[i].classname == "guibuilder.picgroup") > poolElements(children[i]); > else if(children[i].classname == "guibuilder.tablegroup") > poolElements(children[i]); > else if(children[i].classname == "guibuilder.bordergroup") > poolElements(children[i]); > else if(children[i].classname == "guibuilder.smallchoice" || > children[i].classname == "guibuilder.choice") { > var opts = children[i].removeAll(); > for(var j = 0; j < opts.length; j++) { > pool.poolObject(opts[j]); > //opts[j].dispose(); > } > } > pool.poolObject(children[i]); > //children[i].dispose(); > } > } > > Regards, Johannes > s://lists.sourceforge.net/lists/listinfo/qooxdoo-devel ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ qooxdoo-devel mailing list qooxdoo-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel