问题重现:公司监控的是系统大屏,所以需要比较实时的数据,前端需要不断轮询后台数据,所以浏览器在很长一段时间后崩溃。查了几天问题,发现使用echarts的模块占用内存一直在上升。报错原因:每次轮询Timer滥用后创建一个新的echarts对象,导致每次都创建一个对象解决方法:Timer的写法,clearInterval()在每次setInterval()=setInterval(function()时先销毁vartimer{clearInterval(timer);//处理下面的业务},1000)echarts写法,第一次初始化一个对象,后面会复用这个对象;然后仅在每次轮询后重置数据。有些属性会有所不同。例如:RingDiagram(e){var_this=this;//设置第一次不会改变的属性if(_this.times===1){_this.chart=this.$echarts.init(document.getElementById('RingDiagramTime'));_this.times++;_this.chart.setOption({//添加属性});}else{_this.chart.setOption({series:[{data:e,}]});}}Chrome查看内存方法:
