I have a requirement that the current browser window refreshes at regular intervals to keep the current session active. Below is the JavaScript code that is refreshing the page every 5 minutes.
<script language="javascript">
setTimeout(function () {
window.location.reload(1);
}, 300000);
</script>
It accomplishes the task, but I am noticing that button click events repeat the function at every page refresh. A simple example is provided below. On button click, execute MyFunction();
protected void TestButton_Click(object sender, EventArgs e)
{
MyFunction();
}
With a 5 minute page refresh interval, the MyFunction() is executing every five minutes.
It seems to only happen for button click events. I changed the interval from 10 seconds to 5 minutes, and the same result is observed; however, it does not seem to happen 100% of the time.
Is there a better way to auto-refresh an ASP.NET page to keep the session active that can avoid this issue, or a way to mitigate the problem being described? It seems like the event is cached and re-executed upon each page refresh, but I'm not sure why.
