I think you have me on the right track. I just did some timing tests and
creating these 'virtual' controls is much faster and leaves no JavaScript
memory footprint behind. There was a slight change to the sample you sent, I
can not do label.getElement() as this does not exist, but I was able to do
label.getContentElement() and it worked perfect. Now I am going to figure
out how to showhorn this technique into my current code to see what kind of
improvements I can get.
Thanks for the assistance!
Jim
On Mon, Jan 12, 2009 at 3:10 AM, Fabian Jakobs <[email protected]>wrote:
> Jim Hunter schrieb:
> > Thanks for the reply, but no, I wasn't thinking of the table controls.
> > I was reading about the new features of .8 and read about other
> > 'virtual' controls and was excited because I immediately thought about
> > this scenario for their use. But at the time I read the news, I hadn't
> > even started my conversion to .8. Now that I have most of my app
> > converted and running, I really need extremely light wieght controls
> > to get past this problem.
> >
> > I already have a version of my application where I create ALL the HTML
> > but I don't have any way to theme it and doing it myself is a step
> > backward.
> If you need theming using plain HTML becomes a problem.
>
> We don't have lighweight controls in 0.8 but I have an idea how you
> could solve your problem.
>
> Its a bit of a hack and I'm not sure if it will work but you can at
> least try it. The idea is basically to use just one label widget and
> "steal" the rendered HTML.
>
> var label = new qx.ui.basic.Label()
>
> // repeat these steps for all your label instances.
>
> label.set({
> content: "text"
> ... // configure the label
> });
>
> this.getRoot().add(label, {left: -1000, top: -1000}); // DOM nodes are
> only generated for widgets added to the application
> qx.ui.core.queue.Manager.flush(); // flush all queues, this triggers
> generation of the DOM nodes.
> var labelDom = label.getElement().getDomElement().cloneNode(true); // do
> a deep copy of the label DOM
>
> // insert these domNodes into your report
> labelDom.style.left = "20px";
> labelDom.style.top = "10px";
> report.getElement().getDomElement().appendChild(labelDom);
>
>
> This way you only need one label instance. This should be much faster
> than creating hundreds of labels. Of coarse you cannot interact with the
> cloned widgets and you cannot modify them. I would be interested if this
> works and if it solves your problem.
>
> Best Fabian
> >
> > I can't create any sort of master control because I never know what is
> > going to be displayed, that is 100% designed by the client using the
> > software, I simply display what they create. I read in the form/tool
> > definition out of a db and render it on the fly. Most of the controls
> > are labels and edit boxes, but they do need to match the theme being
> > used (which is also set by the user and 'created' at run time). I
> > suppose I could create a subclass of these basic controls and after
> > they are rendered have the control delete itself to free up memory.
> > That is if doing a JavaScript delete would kill the control but not
> > remove the DOM rendering of it?
> >
> > Thanks,
> > Jim
> >
> >
> > On Mon, Jan 12, 2009 at 1:47 AM, Fabian Jakobs <[email protected]
> > <mailto:[email protected]>> wrote:
> >
> > Jim Hunter schrieb:
> > > I remember reading, a couple of months ago, that there were new
> > > controls in .8 that were basically DOM only controls so that they
> > > would be created and written to the DOM without using up memory.
> > I think you are talking about the table and TreeVirtual. Both widgets
> > don't create any qooxdoo widgets for the contents. They just
> > create the
> > required HTML markup and add it to the table pane using innerHTML.
> >
> > > I just spent the last hour trying to find information on the
> > controls
> > > but I seem to be coming up short. Can someone lend some advice as
> to
> > > what is the best way to go about creating DOM controls that are
> > > basically only needed to display information, no event handling
> > etc. I
> > > am working with user generated pages and on one page, that contains
> > > hundreds of controls, it takes over 30 seconds to render on IE7.
> The
> > > same page on FireFox renders in just a couple of seconds. I know
> > that
> > > IE sucks on JavaScript, but I don't have a choice, I have to
> support
> > > it. So I need to make rendering this page as fast as possible and I
> > > won't need access to the controls once they are rendered to the
> > > browser. Any ideas?
> > Is it possible to combine those controls into one single widget?
> > If this
> > is the case you could use an HtmlEmbed widget and render the
> > contents of
> > your controls using plain html.
> >
> > Best Fabian
> >
> >
> >
> > >
> > > Thanks,
> > > Jim
> > >
> > >
> >
> ------------------------------------------------------------------------
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > Check out the new SourceForge.net Marketplace.
> > > It is the best place to buy or sell services for
> > > just about anything Open Source.
> > > http://p.sf.net/sfu/Xq1LFB
> > >
> >
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > qooxdoo-devel mailing list
> > > [email protected]
> > <mailto:[email protected]>
> > > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> > >
> >
> >
> > --
> > Fabian Jakobs
> > JavaScript Framework Developer
> >
> > 1&1 Internet AG
> > Brauerstraße 48
> > 76135 Karlsruhe
> >
> > Amtsgericht Montabaur HRB 6484
> >
> > Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich,
> > Thomas Gottschlich, Matthias Greve, Robert Hoffmann, Markus Huhn,
> > Oliver Mauss, Achim Weiss
> > Aufsichtsratsvorsitzender: Michael Scheeren
> >
> >
> >
> ------------------------------------------------------------------------------
> > Check out the new SourceForge.net Marketplace.
> > It is the best place to buy or sell services for
> > just about anything Open Source.
> > http://p.sf.net/sfu/Xq1LFB
> > _______________________________________________
> > qooxdoo-devel mailing list
> > [email protected]
> > <mailto:[email protected]>
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> >
> >
> > ------------------------------------------------------------------------
> >
> >
> ------------------------------------------------------------------------------
> > Check out the new SourceForge.net Marketplace.
> > It is the best place to buy or sell services for
> > just about anything Open Source.
> > http://p.sf.net/sfu/Xq1LFB
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > qooxdoo-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> >
>
>
> --
> Fabian Jakobs
> JavaScript Framework Developer
>
> 1&1 Internet AG
> Brauerstraße 48
> 76135 Karlsruhe
>
> Amtsgericht Montabaur HRB 6484
>
> Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas
> Gottschlich, Matthias Greve, Robert Hoffmann, Markus Huhn, Oliver Mauss,
> Achim Weiss
> Aufsichtsratsvorsitzender: Michael Scheeren
>
>
>
> ------------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It is the best place to buy or sell services for
> just about anything Open Source.
> http://p.sf.net/sfu/Xq1LFB
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel