Click link lost during self updating
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
Re: Click link lost during self updating
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 reier...@gmail.com 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 a.novar...@sourcesense.com 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
Re: Click link lost during self updating
Pedro, Thank you. This is indeed a solution, but it would mean rewriting the whole application. There are lots of components that need to be refreshed, and adding to each of them the behavior don't seem trivial. I'll give it a try anyway. Thank you Ale On Thu, Oct 1, 2009 at 1:17 PM, Pedro Santos pedros...@gmail.com wrote: I have a page that's refreshing its components every n seconds using AbstractAjaxTimerBehavior. Among these components there's a list of links. Would be nice if you apply AbstractAjaxTimerBehavior only to components that need to be updated. Than you don't get in trouble with your links... On Thu, Oct 1, 2009 at 7:45 AM, Ernesto Reinaldo Barreiro reier...@gmail.com 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 a.novar...@sourcesense.com 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 -- Pedro Henrique Oliveira dos Santos
Re: Click link lost during self updating
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 reier...@gmail.com 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 reier...@gmail.com 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 a.novar...@sourcesense.com 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 reier...@gmail.com 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 a.novar...@sourcesense.com 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