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