One warning for you, the performance characteristics of having a grid be
attached or detached can be very different for Firefox and IE. If you are
trying to use this technique in your own code, you might want to double
check the effect on both browsers.

In terms of gwt-incubator, we are brainstorming on ways to let our users
know which widgets/libraries are relatively stable (if they were perfectly
stable they would have graduated already)  and which are still wildly
fluctuating, once we have a proposal, I will be sending it out on this list,
so stay tuned.

Even for relatively stable widgets though, I think having a facade around
them is probably the smartest way to use them, so I'm glad your group is
using that practice.

      Cheers,

              Emily







On Tue, Feb 3, 2009 at 2:45 PM, David <david.no...@gmail.com> wrote:

> Hi John,
> I know about incubator and we are using PagingScrollTable in other places
> where the data can be much bigger.
>
> But the point that I was trying to report: some operations that do bulk
> operations in the Grid can be optimized a bit better by detaching from the
> document and reattaching automatically. Maybe that could somehow be done
> behind the scenes when doing a resize. The out-of-the-box experience would
> be much better - when doing a prototype to see if a technology is stable
> enough to be used, these kind of issues leave a bad impression on people
> trying out what could be achieved.
>
> Now that I know that it has a huge impact, I will do so myself in my custom
> listbox... and in the next step I will upgrade the component to a
> GridBulkRenderer, but that will have impact on the API of the component
> since it supports custom rendering in the listbox.
>
> The biggest issue I have with incubator is that with every release we have
> to update our code:
> - Class names change
> - Package names change (gen2)
> - methods are renamed or refactored
> - Event mechanism has changed half way.
>
> We have a deadline to meet and incubator widgets are just to volatile for
> the moment. The Table we already started using but only after shielding off
> everything about the incubator because we can not afford to change the
> applications all of the time (in total we have at least 5 big GWT projects
> in development and many new ones are being defined for the future).
>
>
> David
>
>
> On Tue, Feb 3, 2009 at 5:21 PM, John LaBanca <jlaba...@google.com> wrote:
>
>> The GridBulkRenderer in the GWT incubator allows you to generate a Grid as
>> an HTML string, which is much faster than using DOM manipulation as the Grid
>> currently does.  You can also use it with the ScrollTable, which add a fixed
>> header to a scrolling body.  Or use the PagingScrollTable, which divides the
>> rows into mulitple pages.
>>
>> You can find these widgets in the incubator project:
>> http://code.google.com/p/google-web-toolkit-incubator/
>>
>>
>> Thanks,
>> John LaBanca
>> jlaba...@google.com
>>
>>
>>
>> On Tue, Feb 3, 2009 at 11:16 AM, stuckagain <david.no...@gmail.com>wrote:
>>
>>>
>>> Beloved GWT devs,
>>>
>>> I just finished tracking down a big performance issue in one of our
>>> application and I really fell that I have to post something about the
>>> problem here.
>>>
>>> As we all know the Grid is very slow if you need to show a large
>>> table. But what I did not know is that it makes an extreem big
>>> difference when the Grid is attached or not.
>>>
>>> I had a Grid with 2000 rows (1 column) populated before attaching the
>>> widget. That takes about 5 seconds. That is not great, but since this
>>> is a border case it is good enough since most instances will only use
>>> less than 10 rows.
>>>
>>> But... we had some logic that reset the grid to contain refreshed
>>> data, but this time the grid is populated while it was already
>>> attached to the browser document. It now took 250 SECONDS to show the
>>> exact some data.
>>>
>>> The easy solution (before switching over to bulk rendering) is to
>>> simply remove the Grid from the document, populate it with the 2000
>>> rows and put it back.
>>>
>>> Wouldn't it be nice that the components like the Grid would do such
>>> things automatically when doing big operations like resize on it ?
>>>
>>> David
>>>
>>>
>>
>>
>>
>
> >
>


-- 
"There are only 10 types of people in the world: Those who understand
binary, and those who don't"

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to