A few points to make about this:
(function () {
// timedRefresh(10); //3600000
delayedAlert();
var timeoutID;
function delayedAlert() {
clearAlert();
timeoutID = window.setTimeout(slowAlert, 10000);
}
function slowAlert() {
alert("You may have been logged out due to inactivity. Click OK to refresh the page.");
}
function clearAlert() {
window.clearTimeout(timeoutID);
}
})();
slowAlert
/delayedAlert
can be improved by moving slowAlert
into delayedAlert
as follows:
function delayedAlert() {
clearAlert();
timeoutID = window.setTimeout(function(){
alert("You may have been logged out due to inactivity. Click OK to refresh the page.");
}, 10000);
}
- I can't see why the
clearTimeout
call deserves its own function, when it only gets called from delayedAlert
; You could just put it in delayedAlert
:
function delayedAlert() {
window.clearTimeout(timeoutID);
timeoutID = window.setTimeout(function(){
alert("You may have been logged out due to inactivity. Click OK to refresh the page.");
}, 10000);
}
You can make delayedAlert
an anonymous function, so that it cannot be called other than inside that block by changing function delayedAlert()
into var delayedAlert = function()
You call delayedAlert
before timeoutID
is defined:
delayedAlert();
var timeoutID;
If you're going to use globals (which are recommended against), declare them first, at the top.
(function(){
var timeoutID;
// functions and whatnot
delayedAlert();
All resulting in:
(function(){
var timeoutID;
var delayedAlert = function() {
window.clearTimeout(timeoutID);
timeoutID = window.setTimeout(function(){
alert("You may have been logged out due to inactivity. Click OK to refresh the page.");
}, 10000);
}
delayedAlert();
})();