whats happening is this

user hits the page /foo
goes to /foo?1
does a bunch of ajax stuff, staying on /foo?1
clicks refresh, so hits /foo?1
listview refreshes, changing hierarchy, creating page version 2
the ajax behavior's url is rendered as /foo?2:...
the page is rendered, but not redirected to /foo?2

so what we have now is a browser pointing to /foo?1 and ajax (and
non-ajax) urls pointing to /foo?2

further clicks work only because the component they repaint has the
same markup id on page 1 and page 2. however, all model changes are
stored in page 2. this is why when the browser is refreshed the
counter reverts to a previous value - because it is page 1 that is
rerendered.

there are two ways to fix this:

1) redirect to correct version. so when the browser is refreshed for
the first time on /foo?1 the browser would redirect to /foo?2 and it
would keep doing that for every refresh. not ideal.

2) freeze the page version when we are accessing a url that we know
will not mutate the state of the page - meaning urls that just render
the page and do not invoke any listeners. the only state we will lose
is noise from component replacement in listviews and user's
onbeforerender() overrides which i think is acceptable since they do
not represent true state mutation that comes from intentional
callbacks.

-igor


On Wed, Apr 11, 2012 at 6:40 PM, Dan Retzlaff <dretzl...@gmail.com> wrote:
>> I don't know exactly what is making the page dirty in this case.
>
> The AJAX debug window has a ListView in it.
>
> On Wed, Apr 11, 2012 at 7:09 PM, Nelson Segura <nsegu...@gmail.com> wrote:
>
>> Sorry, you dont have to refresh 4 times, just once :p
>> -Nelson
>>
>> On Wed, Apr 11, 2012 at 6:08 PM, Nelson Segura <nsegu...@gmail.com> wrote:
>> > This is easily reproduceable in the wicket sample pages:
>> >
>> > http://www.wicket-library.com/wicket-examples/ajax/links
>> >
>> > 1. Click on the increment link for Counter 2 for times. Counter shows 4.
>> > 2. CTRL-R/refresh 4 times, the counter still shows 4.
>> > 3. Click on link 4 more times. Counter shows 8
>> > 4.CTRL-R/refresh once more, the counter shows 4!
>> >
>> > I don't know exactly what is making the page dirty in this case.
>> >
>> > Can you confirm this behavior in the sample page?
>> >
>> > -Nelson
>>
>> ---------------------------------------------------------------------
>> 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