04-22-2019, 11:11 PM
(This post was last modified: 04-22-2019, 11:13 PM by DanBarclay.)
A couple of points, just to be sure everybody is talking about the same thing. You used the generic term "keep alive". There are two keep alive properties. One is httpkeepalive, which is the KeepAlive property of the HTTP connection. The other is on the form as MyForm.Keepalive. This second one is the one Chad is referring to, and I think you are referring to the same.
As to how the session timeout works, here is a short version (mostly accurate).
1. The session timeout kills the session after X time of no activity from the browser.
2. The MyForm.Keepalive, when set, will *automatically* create activity for the user, in the background, and will keep the session from timing out so long as the form exists. That is, if they close the form or navigate elsewhere (away from an IW form with keepalive) the session will time out but if the form is still active it will not time out.
The MyForm.Keepalive works by knowing the timeout delay (X) and sending a message to the server about 3 or 4 times during that time.
All of that plumbing is in the form code, you don't have to do anything but set the MyForm.KeepAlive.
The MyForm.Keepalive stays active on desktop browsers even if the window is not active but, in my experience, only stays active on mobile browsers while that window is in use.
Dan
As to how the session timeout works, here is a short version (mostly accurate).
1. The session timeout kills the session after X time of no activity from the browser.
2. The MyForm.Keepalive, when set, will *automatically* create activity for the user, in the background, and will keep the session from timing out so long as the form exists. That is, if they close the form or navigate elsewhere (away from an IW form with keepalive) the session will time out but if the form is still active it will not time out.
The MyForm.Keepalive works by knowing the timeout delay (X) and sending a message to the server about 3 or 4 times during that time.
All of that plumbing is in the form code, you don't have to do anything but set the MyForm.KeepAlive.
The MyForm.Keepalive stays active on desktop browsers even if the window is not active but, in my experience, only stays active on mobile browsers while that window is in use.
Dan

