Done:
http://bugzilla.qooxdoo.org/show_bug.cgi?id=7411

Thank you for further investigation.
As promised I've done some tests on my own with interesting and promising 
results (have a look at the bug report).

Maybe off topic: While digging thru the framework code I found this snipped 
inside Widget.js _disposeChildControls method:

if (!Widget.contains(this, control)) {
  control.destroy();
} else {
  control.dispose();
}

Why the control is destroyed (removed before disposed) when the widget NOT 
contains the control?
I'm wondering because of the fact that this snipped creates errors ("not a 
child of") with my test implementation of Dispose flush method. After removing 
the negotiation (!) everything worked fine. The confusion thing ( at least for 
me ;) ) is, why this didn't  lead to an exception with the current flush 
implementation?

Regards,
Andreas

Von: Andreas Parusel [mailto:andreas.paru...@1und1.de]
Gesendet: Freitag, 17. Mai 2013 11:18
An: qooxdoo Development
Betreff: Re: [qooxdoo-devel] Howto dispose huge widget structure?

Hi Andreas,

yes, you brought up some interesting and valid points regarding the blog post 
in [3].

It would be great if you could report the enhancement-bug at 
http://bugzilla.qooxdoo.org and also point to the blog post there. Our 
framework team will then investigate the issue and you as the bug-reporter will 
get notification-emails if the status of the bug changes.

Andreas Parusel
Software Developer
Applications & Integration

1&1 Internet AG
Ernst-Frey-Straße 10
DE-76135 Karlsruhe

Telefon: +49 721 91374-6184
E-Mail: andreas.paru...@1und1.de<mailto:andreas.paru...@1und1.de>
Web: www.1und1.de<http://www.1und1.de>

Amtsgericht Montabaur / HRB 6484
Vorstände: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Robert Hoffmann, 
Andreas Hofmann, Markus Huhn, Hans-Henning Kettler, Dr. Oliver Mauss, Jan 
Oetjen, Martin Witt, Christian Würst
Aufsichtsratsvorsitzender: Michael Scheeren

Member of United Internet

Am 16.05.2013 um 11:05 schrieb "Fink, Andreas" 
<andreas.f...@afb-group.eu<mailto:andreas.f...@afb-group.eu>>:


Hi Andreas (little congratulation to our parents for choosing a good name :)),

Thank you for your answers I only have a few comments and additional questions 
before start working in one direction:

- Does it make any difference if we add the window to qx.ui.core.queue.Dispose?

This wouldn't make any difference because that's exactly what 
qx.ui.core.Widget.destroy() does.

Just to understand what's going on:
Widget. destroy(), removes the widget from parent, add it to the dispose queue 
and then directly calls flush()?



- I stumbled over a blog post [3] where a solution is given, maybe this would 
be a nice feature for qooxdoo disposing process?
What do you think?

This could indeed be a workaround for your problem but I don't think it would 
be a good generic behavior for every use-case, because it would simply slow 
down every object-disposing, no matter if the browser actually stumbles or not. 
I think it would

You're right I also think it would slow down the disposing (not sure how hard, 
maybe just a little) but as mentioned in the blog:
"Note: Remember this will also give you a much more responsive browser during 
execution of this expensive code also."

That's another (smaller) problem I noticed when disposing a lot of objects or a 
deep object structure, the browser stop responding until disposure is done (not 
only IE 8, newer Browser does too), so even if it takes a little longer, maybe 
the end-users feeling would be better when they don't have to wait.

These are only presumptions, I think I'll have a closer look in qooxdoos 
disposing process and try to implement this for internal tests. If I make good 
experience I will tell you.



- Any other ideas are really welcome! :)

I see two possible ways how to solve the issue:

1. Instead of destroying the whole window at once, you could group the forms 
inside the win into smaller chunks and destroy them one after another.

Thank you! I think this is a possible and easy to implement workaround. I 
already have some "chunks" (tabs, sub-forms, field groups, ...). I'll try to 
first destroy them before destroying the window.

2. You could reuse the forms as you already mentioned. Also ake a look at the 
helper-class qx.util.ObjectPool which offers some convenience for exactly this 
purpose.

Thank you for the hint. I'll have a look.

Hope this helps!

It does :)

Regards,
Andreas
------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net<mailto:qooxdoo-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to