Igor,

I don't understand the optimal use of the different repeaters list
views in different scenarios well enough yet, so I would be greateful
if someone could provide a link for more documentation.

As far as I understand, though, refreshingview.setreuseitemstrategy()
is about re-using items - it is all about models.

I am thinking about re-using the rendering component for ALL items in
the collection. That would not require any strategy. And I would want
this to work with database driven collections, so far I have used
DataProvider with LDMs. What needs to be done to get re-used
components in this scenario?

Bernard

On Fri, 26 Mar 2010 16:41:11 -0700, you wrote:

>repeaters support this, see listview.setreuseitems() and
>refreshingview.setreuseitemstrategy()
>
>-igor
>
>On Fri, Mar 26, 2010 at 1:50 PM,  <b...@actrix.gen.nz> wrote:
>> But why in repeating views are the components duplicated for each row?
>> Wicket should re-use the components - one instance for each row could
>> do all the rendering. Not one instance for each row which is a waste.
>>
>> Caching is a different concept as it also preserves the data which is
>> not wanted in repeaters unless one wants to cache the whole
>> collection.
>>
>> Bernard
>>
>>
>> On Fri, 26 Mar 2010 06:50:24 -0700, you wrote:
>>
>>>the recommended way to handle this would be to cache the data not the
>>>generated html
>>>
>>>-igor
>>>
>>>On Fri, Mar 26, 2010 at 1:11 AM, Martin Sachs <sachs.mar...@gmail.com> wrote:
>>>> We have a lot of Repeating views, which containing a lot of components,
>>>> which also contains repeatingviews.
>>>>
>>>> To know would should be rendered, we load some hopefully small
>>>> (listsizes, objectbyId, ...) datas from DB in the constructor and/or in
>>>> onBeforeRender and in isVisible. You are right, this is not a
>>>> recommented way. Most of the time is database-loading and wicket has no
>>>> performance-problem for us. We profile our application and never found
>>>> wicket-components as hotspots.
>>>>
>>>> One reason for loading some data in contstructur or onBeforeRender is to
>>>> prevent creating huge hierarchies. This is faster than override
>>>> isVisible(), since isVisible would called more than one times.
>>>>
>>>> For our usecase the responsetime is much faster with HTML-Caching,
>>>> because the Database-calls are minimized. We save the time for creating
>>>> componentshierarchies (all three categories) with loading data.
>>>>
>>>>
>>>> Martin
>>>>
>>>> Jeremy Thomerson schrieb:
>>>>>
>>>>> On Wed, Mar 24, 2010 at 3:26 AM, Martin Sachs <sachs.mar...@gmail.com
>>>>> <mailto:sachs.mar...@gmail.com>> wrote:
>>>>>
>>>>>     hi,
>>>>>
>>>>>     we need caching of components, since the construction of huge
>>>>>     hierarchies is not cheap. The rendering ist fast. We cache the
>>>>>     rendered
>>>>>     HTML of a hole component via a beheaviour and write them on the next
>>>>>     requests into a Label (unescaped). So instead of creating the complete
>>>>>     hierarchie on every request, we create a much smaller one. But you
>>>>>     must
>>>>>     check, that the cachable components are stateless. Also we have JQuery
>>>>>     for client-effects in this components, this would also be cached.
>>>>>
>>>>>     The performance is much better with that: approx. 10-50 times better:
>>>>>        100ms with cache (the response time is not much depending on count
>>>>>     of users)
>>>>>            vs
>>>>>        1500 ms without cache depending how many parallel user
>>>>>
>>>>>
>>>>> A 15x gain is a big statement to make.  Can you please break this
>>>>> 1500ms down into at least the following categories:
>>>>>
>>>>> 1 - time in IModel#getObject() and all child calls of this (IOW,
>>>>> loading data)
>>>>> 2 - time in constructor of components (without loading data in the
>>>>> constructor - hopefully you're not doing this)
>>>>> 3 - time in rendering of components
>>>>>
>>>>> That would be a much better number to give other users.  I have NEVER
>>>>> seen where creating / rendering components could take 1400ms - unless
>>>>> you're doing something wrong like database calls in your component
>>>>> constructors.  So, I suspect that most of that 1400ms (I would guess
>>>>> at least 1250ms) is in your model loading.
>>>>>
>>>>> The only time I've seen (or seen proof of) the component hierarchy
>>>>> actually be the slow part of a Wicket page is if you were displaying a
>>>>> repeating view of some sort with thousands of rows and each row had a
>>>>> bunch of components in it - leading to tens of thousands of components
>>>>> being built in the hierarchy.
>>>>>
>>>>> --
>>>>> Jeremy Thomerson
>>>>> http://www.wickettraining.com
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>
>>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>For additional commands, e-mail: users-h...@wicket.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to