diff --git a/dashboard/src/components/app/Graphs.vue b/dashboard/src/components/app/Graphs.vue index 02c6c99c2..251e79d7f 100644 --- a/dashboard/src/components/app/Graphs.vue +++ b/dashboard/src/components/app/Graphs.vue @@ -65,6 +65,9 @@ async function liveRefresh() { metricStream.onmessage = (message) => { const data = JSON.parse(message.data); + // stop here if the DOM elements are already gone due to view change + if (!cpuGraphItem.value) return; + cpuGraphItem.value.pushData(0, data[app.id].cpu); memoryGraphItem.value.pushData(0, data[app.id].memory); diskGraphItem.value.pushData(0, data[app.id].blockReadRate, data[app.id].blockWriteRate); @@ -102,6 +105,9 @@ async function rebuild() { blockWriteTotal.value = prettyDecimalSize(metrics.blockWriteTotal); } + // stop here if the DOM elements are already gone due to view change + if (!cpuGraphItem.value) return; + cpuGraphItem.value.setDatasets(datasets.cpu); memoryGraphItem.value.setDatasets(datasets.memory); diskGraphItem.value.setDatasets(datasets.disk);