You have to be very careful about what you are doing. Think about the
following situation:
1-You have panel A that contains a panel B which in turn contains a check
box.
2-Suppose panel B in recreated every time panel A is rendered (e.g. on
onBeforeRendered()).
3-The state of the check box depends on a boolean that is set to false on
the constructor of panel B.
4-Now suppose the user clicks the checkbox and generates an AJAX request and
the boolean is set to true...
5-But right after you have your timer request that repaints A (and recreates
B showing an unchecked checkbox).
6-So the effect is that your action of clicking the check box was over-riden
by the refresh,

I'm not telling this is your situation but if you are not careful many
strange things could happen...

Best,

Ernesto

On Thu, Oct 1, 2009 at 6:06 PM, Alessandro Novarini <
[email protected]> wrote:

> Ok, thank you to everyone.
>
> I've made further investigation and I (think) can describe the problem:
>
> The refresh of the page is set to 3 seconds;
> The server takes 2 seconds to give the response back to the client;
> If the user clicks during the 2 seconds interval, the event is lost, and
> the
> dialog (or whatever needs to be displayed) doesn't appear.
>
> I think that the click is queued to be processed after the refresh is
> completed, but the page has been changed, and the client doesn't recognize
> the source of the event anymore.
> Maybe if I define the ids for each component in the hierarchy, so that
> wicket doesn't generate them...
> Do you think this is likely to occur or is just a speculation? Any of you
> had a similar experience?
>
> I'm reading the links in the meantime.
>
> Thanks again
> Ale
>
> On Thu, Oct 1, 2009 at 3:49 PM, Ernesto Reinaldo Barreiro <
> [email protected]> wrote:
>
> > Maybe this thread has information useful to you.
> > http://www.nabble.com/How-to-tackle-Ajax-
> > "Flooding"-td25216116.html#a25221503<
> >
> http://www.nabble.com/How-to-tackle-Ajax-%22Flooding%22-td25216116.html#a25221503
> > >
> >
> > <
> >
> http://www.nabble.com/How-to-tackle-Ajax-%22Flooding%22-td25216116.html#a25221503
> > >
> > Ernesto
> >
> > On Thu, Oct 1, 2009 at 3:34 PM, Ernesto Reinaldo Barreiro <
> > [email protected]> wrote:
> >
> > > What I suggested was the other way round... When the page is refreshing
> > > block it so that users can't click on a link while that is happening...
> > And
> > > the way to block it could be using a veil (e.g. a transparent div layer
> > with
> > > a loading icon) that does not allows the user to click on a link (the
> > same
> > > as modal windows), not on the server side. I'm not 100% sure but I
> think
> > > wicket chains the AJAX requests so that only one request is processed
> at
> > a
> > > time...(core developers, please correct me if I'm saying something
> > > wrong:-(. So, if you click on a link while the page sent a "refresh"
> > > request, then the "click" will be execute only after page is
> refreshed...
> > > and get lost somehow? There was a thread dealing with a similar
> situation
> > > some time ago...
> > > I use a similar approach with a GRID component that allows to drag and
> > drop
> > > columns: while table is repainting I block the page so that user can't
> do
> > > anything... I do the same for ajax links, etc.
> > >
> > > Best,
> > >
> > > Ernesto
> > >
> > >
> > > On Thu, Oct 1, 2009 at 2:57 PM, Alessandro Novarini <
> > > [email protected]> wrote:
> > >
> > >> Ernesto,
> > >>
> > >> Thanks for the quick reply, but maybe I haven't explained in an
> accurate
> > >> way
> > >> the problem.
> > >> Please correct me if I'm wrong; I get that you're suggesting me to
> > >> "disable"
> > >> all the components after the user clicks on a link, and enabling them
> > >> after
> > >> the server sends back the response. Is it correct?
> > >>
> > >> The problem I'm experiencing is than the first click is lost if the
> > whole
> > >> page is being refreshed. It seems that the client doesn't send the
> event
> > >> to
> > >> the server; I'm assuming it because our log of the DataRequestCycle
> > >> doesn't
> > >> print anythink.
> > >>
> > >> Thanks you again
> > >> Ale
> > >>
> > >> On Thu, Oct 1, 2009 at 12:45 PM, Ernesto Reinaldo Barreiro <
> > >> [email protected]> wrote:
> > >>
> > >> > Is blocking the page with a "veil" while refreshing a valid
> solution?
> > >> That
> > >> > way users could not click on links while the page is refreshing...
> > >> >
> > >> > Best,
> > >> >
> > >> > Ernesto
> > >> >
> > >> > On Thu, Oct 1, 2009 at 12:37 PM, Alessandro Novarini <
> > >> > [email protected]> wrote:
> > >> >
> > >> > > Hello everybody,
> > >> > >
> > >> > > I've just subscribed to this ml, and even thou I searched past
> mails
> > >> > about
> > >> > > my problem, I couldn't find any hint.
> > >> > >
> > >> > > I have a page that's refreshing its components every n seconds
> using
> > >> > > AbstractAjaxTimerBehavior.
> > >> > > Among these components there's a list of links.
> > >> > >
> > >> > > If I try to click a link near the refresh interval, the request
> get
> > >> lost
> > >> > > because of the refresh.
> > >> > >
> > >> > > One of the solution I'm trying is to disable the refresh on the
> > >> > > onMouseDown,
> > >> > > and re-enabling it on the onMouseUp event, but this doesn't work
> as
> > >> the
> > >> > > first event stops forever the ajax method call (the refresh).
> > >> > >
> > >> > > Every kind of help will be really appreciated :)
> > >> > >
> > >> > > Thank you in advance
> > >> > > Ale
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>

Reply via email to