我正在生成多个图表,每个图表都有自己的 setInterval 来刷新数据。当动态生成的容器被删除时,我将它设置为 clearInterval - 但是如果我重新加载并且它具有相同的 id,旧的 setInterval 将继续运行。有没有办法设置一个动态命名的 setInterval 可以在生成替换时停止?
现在我正在使用:
function generateChart(data, location){
var chart = new Highcharts.Chart({
// blah blah blah
}, function(chart){
setInterval(function(){
if($('#'+location).length){
// I'm doing stuff every minute
}else{
clearInterval();
}
},60000);
});
}
发生的情况是,该位置是一个随机生成的字符串,它成为 Highchart 容器的元素 ID,如果用户保存图表,它就成为唯一标识符。如果用户更新已保存的图表并重新加载图表,则旧图表将获得 .removed() 并在其位置生成新图表。现在,新的与旧的具有相同的元素 ID,并且由于旧的间隔找到了它想要它尝试继续更新的容器——这是因为它的图表失败了。
有没有办法设置我可以用于 setInterval 的动态变量,以便我可以对其进行 clearInterval ?
var blob+location = setInterval(function(){ ...
接着
clearInterval(blob+location);