Hi Bruce,
On Mon, May 12, 2014 at 4:52 PM, Bruce Lombardi <[email protected]> wrote: > This message is related to an original thread "Link to Wicket page from > Javascript" but the focus is changed so much that I though a new title > would be better. In the earlier thread I asked about linking to a Wicket > page, but the real need was for help in implementing a session timeout that > would send the user to a timeout page after a period of inactivity and > would > reset whenever a user clicked any button on the page. > > > > Ernesto Reinaldo Barreiro sent me links(see below) to a working demo that > did exactly what I required. I used that code and everything seemed to > work > perfectly. However, I have since discovered that my timer does not seem to > function correctly if the user goes to another tab. It seems like the timer > stops timing down or slows way down until the user comes back to the > original tab. > > Do you mean another browser tab? > > > I checked Ernesto's demo. If I go to the demo page and stay there it times > out after roughly the defined 10 second timeout period, but if I go to the > demo page, then click on another tab, it eventually times out, but after > more than 3 minutes. My code, however, never seems to seem to timeout the > page if I go to another tab. > > Does this happens in a all browsers? Or in particular one? Mind that this is just a quick "something" I build to illustrate the idea... So, it might not be bullet proof. > > I really need this to work to fulfill a requirement and it is preventing > the launch of our software. It all works fine except if the user goes to a > different tab. > > > > Ernesto, or anyone, do you know why this is happening. Is the ajax timer > stopping when the tab is not selected? Why is the demo eventually timing > out > while application is not (can't see any real difference in the code)? > Without seeing your code or a quick-start app illustrating the problem it might be difficult to point out what's going on. > > Is there any way to get a better handle on this (e.g., firebug)? If the > ajax > timer is stopping, could something be done, perhaps using absolute elapsed > time, to expire the session immediately if the user goes back to the tab? > The latter is not ideal but might be acceptable. > > > > (Note: My session timeout in web.xml is 30 minutes, client timeout is 15 > minutes, but for testing I set it to 10 seconds). > > > > > > // Links > > > > Demo of Example > > > > http://107.170.4.97:9080/client-sign-out-demo/?0 > > > > > > Code that sets up example > > > > https://github.com/reiern70/antilia-bits/blob/master/client-sign-out-paren > > t/client-sign-out-demo/src/main/java/com/antilia/HomePage.java > > > > > > Code that provides the implementation (We have this code in package > > com.xyzco.web.docs.presentation.helpers.timeout) > > > > > > https://github.com/reiern70/antilia-bits/tree/master/client-sign-out-paren > > t/client-sign-out-demo/src/main/java/com/antilia > > > > Thanks, > > Bruce > > > > > > > > -----Original Message----- > > From: Bruce Lombardi [mailto:[email protected]] > > Sent: Monday, March 17, 2014 8:24 AM > > To: [email protected] > > Subject: Re: Link to Wicket page from Javascript > > > > Thanks, this is very helpful. > > > > Bruce > > > > Sent from my iPad > > > > > On Mar 17, 2014, at 4:52 AM, Ernesto Reinaldo Barreiro > > <[email protected]> wrote: > > > > > > You can see it at work here > > > > > > http://107.170.4.97:9080/client-sign-out-demo/ > > > > > > > > > On Mon, Mar 17, 2014 at 9:18 AM, Ernesto Reinaldo Barreiro < > > > [email protected]> wrote: > > > > > >> Martin, > > >> > > >> What I mean is something that triggers the sign out before serve side > > >> session expires... and trigger this expire event. > > >> > > >> > > >> https://github.com/reiern70/antilia-bits/blob/master/client-sign-out- > > >> parent/client-sign-out/src/main/java/com/antilia/signout/InactivitySi > > >> gnOutPanel.java > > >> > > >> https://github.com/reiern70/antilia-bits/blob/master/client-sign-out- > > >> parent/client-sign-out/src/main/java/com/antilia/signout/InactivitySi > > >> gnOutPanel.js > > >> > > >> The above seem to work. You use it as in > > >> > > >> > > >> https://github.com/reiern70/antilia-bits/blob/master/client-sign-out- > > >> parent/client-sign-out-demo/src/main/java/com/antilia/HomePage.java > > >> > > >> > > >> > > >> > > >> On Mon, Mar 17, 2014 at 9:11 AM, Martin Grigorov > > < <mailto:[email protected]> [email protected]>wrote: > > >> > > >>> Hi, > > >>> > > >>> On Fri, Mar 14, 2014 at 9:25 PM, Ernesto Reinaldo Barreiro < > > >>> [email protected]> wrote: > > >>> > > >>>> Hi, > > >>>> > > >>>> I would implement this as.. > > >>>> > > >>>> 1- A JS function that counts how much time has passed since last > > >>>> AJAX request. Once a certain threshold is passed an AJAX request is > > >>>> sent to > > >>> the > > >>>> page. > > >>>> 2- An AbstractAjaxBehavior that is added to the page. I would use > > >>>> it as context for AJAX request on 1). > > >>> > > >>> at that time the session should be already expired. > > >>> > > >>> But this can be used to do what is needed here - Wicket will > > >>> redirect to the configured PageExpiredErrorPage. > > >>> > > >>> > > >>>> 3- On the respond of AJAXBehavior you redirect to > > >>>> SessionTimeoutPage > > >>> and > > >>>> invalidate the session. > > >>>> > > >>>> > > >>>> > > >>>> On Fri, Mar 14, 2014 at 8:07 PM, Bruce Lombardi > > >>>> <[email protected]> > > >>>> wrote: > > >>>> > > >>>>> Hi, > > >>>>> > > >>>>> > > >>>>> > > >>>>> An earlier question I asked about session timeouts was answered by > > >>> Martin > > >>>>> Grigorov. I am implementing his suggestion and have a JQuery > > >>>>> script > > >>> what > > >>>>> sets a timer that times out after a certain period of inactivity. > > >>>>> The timeout triggers a function call. Currently, for a quick > > >>>>> test, I > > >>> have > > >>>>> that function use location.href to go to an arbitrary static web > > >>>>> page > > >>>> like > > >>>>> this: > > >>>>> > > >>>>> > > >>>>> > > >>>>> function whenUserIdle(){ > > >>>>> > > >>>>> location.href = > > >>>>> 'http://www.natural-environment.com'; > > >>>>> > > >>>>> } > > >>>>> > > >>>>> > > >>>>> > > >>>>> That works fine, but now I need to make it go to a Wicket page in > > >>>>> my application, similar to what would happen if I had an anchor > > >>>>> tag > > like: > > >>>>> > > >>>>> > > >>>>> > > >>>>> <a wicket:id=" SessionTimeoutPage" href="#">SessionTimeoutPage</a> > > >>>>> > > >>>>> > > >>>>> > > >>>>> But I can't figure out how to do this in the javascript function. > > >>>>> Can anyone tell me how to call the Wicket page from the javascript > > >>>>> function? > > >>> > > >>> You can use <script wicket:id="expirationUrl"></script> and a > > >>> Label("expirationUrl", "window.expirePageUrl ='" + > > >>> urlFor(SessionTimeoutPage.class) + "';"); Then use it with: > > >>> location.href = window.expirePageUrl'; > > >>> > > >>> > > >>>>> > > >>>>> > > >>>>> > > >>>>> Thanks, > > >>>>> > > >>>>> > > >>>>> > > >>>>> Bruce > > >>>> > > >>>> > > >>>> -- > > >>>> Regards - Ernesto Reinaldo Barreiro > > >> > > >> > > >> > > >> -- > > >> Regards - Ernesto Reinaldo Barreiro > > > > > > > > > > > > -- > > > Regards - Ernesto Reinaldo Barreiro > > > > -- Regards - Ernesto Reinaldo Barreiro
