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.

 

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.

 

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

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

 

Reply via email to