Hi all, I have implemented a new Timeout component using XTile and have placed it on T-Deli (http://www.t-deli.com).
The component aims to resolve the frequent proplems users have with session expiration, and it aims to do that quietly if possible. It is particularly useful when people are filling in long forms or are editting large data but it is not desirable to increase the session duration due to user count. A problem of that type was discussed earlier on this mailing list, but we have encountered it as well -- users complain about that a lot. Timeout does the following: - If any user activity is detected in the browser, such as mouse clicks or key presses, the browser silently connects to the server and prolongs the session. The fact that the session is prolonged silently in the background ensures that the user will not notice anything in the general case. The detection also starts a certain amount of time (15 minutes by default) before the session expires. This guarantees that the number of server connections is rare and is decreased to a minimum. - If the session is about to expire anyway due to lack of any user activity, a warning message is displayed in the browser (5 minutes before expiration by default). In Firefox that means that the browser will flash on the task bar. The user can then choose to prolong the session explicitly, or let it expire if he so desires. If there is no answer, the session will expire anyway, and the user will be notified about that with another message. This is often useful when the user forgets about an open browser (or a tab) and goes to do something else, but he still has work to save. - All of the listed times and displayed messages are configurable with the component parameters. You can disable a particular functionality as well if you want to. You also have the option of invoking a JavaScript function of your own when the session expires. - If the application is currently running stateless (there is no session), Timeout will not do anything and will not add any code to your page. The above functions are only active when there is a session. Using Timeout is very simple. Just add: <span jwcid="@xtile:Timeout"/> to your page (or perhaps page wrap). Also, do not forget to add a reference to the xtile library in the .application file: <library id="xtile" specification-path="/org/mb/tapestry/xtile/xtile.library"/> Hopefully this component will help resolve some of frustrations users have. Best regards, - mb --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
