Reputation: 8327
If I initiate a setTimeout
function from the <body onload...>
trigger, will the function stop when the page is reloaded?
I initiate a setTimeout
function periodic_update()
on the onload
event of my page.
Is this creating multiple instances of the periodic_update()
function process?
<body onload="init_page_onload()">
function init_page_onload() {
periodic_update();
}
function periodic_update() {
foo()
setTimeout("periodic_update()", PERIODIC_UPDATE_REPEAT_PERIOD_MS )
}
Upvotes: 7
Views: 6135
Reputation: 1758
When you reload the browser, the html, css and javascript are re-evaluated as part of building the DOM and render trees. Consequently, each instance of the timer function is disposed on page reload. So, no, you will not end up with multiple instances of that function.
Upvotes: 1
Reputation: 154918
In the browser, all JavaScript code is aborted when you leave the page, and run when you open the page. So timeouts will be cleared and set again when you reload a page.
If you want to persist a timeout, you could:
localStorage
(which allows you to persist data on the client's computer) to keep track of when the function was last called, and set the timeout appropriately on loadUpvotes: 4
Reputation: 67128
When page is reloaded the "previous" timer is discarded and a new one will start.
Upvotes: 9