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 > > >> > > > > >> > > > >> > > > > > > > > >
