Friday, March 30, 2012

Re: Quantify GWT Debug module overhead

On Friday, March 30, 2012 6:07:11 PM UTC+2, Joseph Lust wrote:

GWT needs to do UiBinding of HTML elements inserted into the DOM. A paraphrasing of this process is:
  • Made insert a new <X> element into the DOM with a custom id (i.e. gwt_id_E7D8A88).
  • Instantly do a lookup for that id and store the reference so that it is now UI bound.
  • Remove the temporary id.
This means that you see a bunch of tags with no id's when you use a DOM inspector, but they were really used. This is why GWT does not want you to set them.

In some (most?) cases, it's more like:
  • insert a placeholder <span> with a custom id
  • instantly replace that element with a widget
Should UiBinder really assign the ID back to the widget's element in this case? I don't think so.

Also, I've heard of performance penalty when there are a lot of elements with an ID set (the browser maintains a map of IDs to elements, for CSS and getElementById), but I don't know if that's still the case in modern browsers (but it could be in things like IE6 or 7, or maybe even 8).

To get around this you can set the attribute debugId in your UiBinder XML (GWT 2.3 & lower)

Do you mean debugId is broken in 2.4? Have you raised a bug? (or is this a known incompatibility I'm not aware of?)

You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

No comments:

Post a Comment