方案:我已经在母版页中设置了一个计时器,该计时器可以在第一页加载时完美运行。当我切换到另一页并且计时器消失时。使用调试器时,我注意到在更改页面时未调用startTimer()。请注意,所有代码都在$(document).ready方法中找到。该代码在localhost上可以正常运行,但仅在部署应用程序时才会出现此问题。
function startTimer(duration) {
var timer = duration;
var myInterval = setInterval(
function () {
try {
//Will crash beacause IsDirector does not exist
if (localStorage.getItem("IsDirector") == 1 && TTL == "") {
return;
}
}
catch (e) {
console.log(e);
}
try {
var minutes = parseInt(timer / 60,10);
var seconds = parseInt(timer % 60,10);
var display = document.getElementById('LblTimeLeft');
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
document.getElementById("TimeLefthidden").value = timer;
localStorage.setItem("TimeLeft",timer);
}
catch (e) {
console.log(e);
}
if (--timer < 0) {
//logout user if timeleft is zero
//removing all session from client browser
localStorage.clear();
btnlogout_onclick();
myStopFunction();
}
},1000);
};
window.onload = function () {
startTimer(TTL);
};
有趣的发现:当我刷新页面时,计时器没有显示(实际错误),但是如果我打开开发者控制台并设置一些断点只是为了检查某些值并关闭开发者控制台,计时器出现!!!