我正在构建一个应用程序,它可能会在单个网页上为用户提供无限的倒数计时器。每个计时器都被设计为相互独立。例如,点击计时器 A 将倒计时 10 分钟,点击计时器 B 将倒计时 2 小时。只需单击一下即可随时取消任何计时器。(计时器基本上是html按钮)我正在使用Javascript的window.setInterval()每秒倒计时
function initTimer()
{
window.clearInterval(myTimer);
myTimer = window.setInterval(function (){Countdown()}, 1000);
}
我的倒计时功能如下所示:
function Countdown()
{
if (((intCurrentTime == intEndTime) || (intCurrentTime > intEndTime))||(blnIsAbort == true))
{
isActive=false;
Toggle(btnID, intButtonType, intCurrentTime, intTimeDelay,blnIsAbort); //toggles the button state
clearInterval(myTimer);
}
else
{
isActive=true;
intCurrentTime++;
UpdateTimer((intEndTime - intCurrentTime), btnID);
}
}
intCurrentTime 是我当前的服务器时间,intEndTime 是从 SQL 数据库中检索的,当用户决定终止计时器时,blnIsAbort 为真。(blnIsAbort=true)
1.) 现在我遇到的第一个问题是,当我刷新网页时 clearInterval(myTimer); 似乎不起作用,而是在一个按钮上运行了两个计时器。(我在页面加载和单击按钮时调用 initTimer())。
2.)当我尝试取消计时器时,这导致了我的第二个问题,单击按钮 A 也会清除按钮 B 的计时器。
任何有助于避免这些问题的帮助将不胜感激。也许有更有效的方法可以解决这个问题?