0
我的页面中,我有一个实时图表,每3秒更新一次 我用setInterval(function(){...},3000)来更新图表。 但我的问题是,当我移动到另一个页面(通过JavaScript),除了我的间隔,每件东西都被销毁,所以当我回到图表页面时,它再次加载每一件事情,并且setInterval方法每3秒钟工作两次,这使得重复点在亩图上。如何销毁当前页面的所有数据
这是破坏方法 每一行的工作除了myInterval当我去到另一个网页,然后回一个
destroy()
{ this.num=0;
this.c=0;
this.startLive = false;
clearInterval(this.myInterval); }
我的问题只是出现。
<template>
....
</template>
<script>
var charts = [];
export default {
data() {
return {
startLive: false,
num: 0,
c: 0,
myInterval: null,
}
},
methods: {
initChart(dataProvieded) {
charts[this.num] = AmCharts.makeChart("chart" + this.num, {...});
},
loadInitalData(limit) {
this.fetchDatafromServer(limit).then((response) => { ...
this.initChart(data);
this.num++;
this.setInt();
});
},
setInt() {
this.myInterval = setInterval(function() { .... } , 3000);
},
}
destroy() {
this.num = 0;
this.c = 0;
this.startLive = false;
clearInterval(this.myInterval);
}
</script>
是的,'clearInterval'是使用的正确函数。但显然,它要么没有找到你的'this.myInterval',要么是其他东西再次启动间隔。我猜它没有找到它。但只有这段代码,并不容易。这个函数的作用范围是什么?在何处以及如何定义'this.myInterval'?如果你做'this'的'console.log'和'this.myInterval'(应该是一个数字),你会得到什么?如果可以的话,请提供一个我们可以自己重现问题的最小例子。 – blex
@blex我希望我添加的内容会让感觉更加清晰 – Haifa
您可以在示例中显示一些调用'destroy()'的代码。 “通过javascript移动到另一页”是什么意思? – cepharum