有一个函数animateTitle()
可以定期更改浏览器标题 - 每3秒钟一次。
var animateTitle = function(countMessages) {
if (isChatTab) {
if (animStep) {
document.title = "New messages ("+countMessages+") - "+origTitle;
} else {
document.title = origTitle;
}
animStep = !animStep;
} else {
document.title = origTitle;
animStep = false;
}
time_title = setInterval(function(){ animateTitle(countMessages) }, 3000);
};
在我的脚本中,参数countMessages
是实时更改并传递给函数animateTitle
,因此这会导致缓冲区溢出,因为该函数是递归的。怎么解决?
答案 0 :(得分:1)
目前,由于您没有清除现有间隔,因此每个函数调用都会创建新的间隔。您应该将时间间隔移到函数外部:
var animateTitle = function(countMessages) {
if (isChatTab) {
if (animStep) {
document.title = "New messages ("+countMessages+") - "+origTitle;
} else {
document.title = origTitle;
}
animStep = !animStep;
} else {
document.title = origTitle;
animStep = false;
}
};
time_title = setInterval(function(){ animateTitle(countMessages) }, 3000);