最近在用echarts進行前台圖表展示,發現每次加載如果數據不變,則圖表不變化,因此進行了一些嘗試。
首先,簡要說一下我理解的echarts:
1、引入echarts的js文件;
2、通過var mychartDiv=document.getElementById("id")獲取div對象,然后在此div中填圖表數據,理解這個就很清楚的知道怎么在一個頁面中放入多個圖表了;
3、獲取div對象后可以通過var myEchart=echarts.init(mychartDiv)初始化echarts實例;
4、通過myEchart.removeAttribute("_echarts_instance_");在每次清空后重新加載;(本節標題的重點)
5、定義echartOption; var echartOption={},具體見官網寫得很詳細,傳送門:https://www.echartsjs.com/zh/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts
6、最后,通過前面得到的實例通過myEchart.setOption(echartOption,true);即可顯示圖表。
看到這兒如果還出現沒有清空圖表的情況,可以在
通過$("#id")).empty()方法在加載echarts前對div 進行清空,
或者document.getElementById('id').innerHTML = "",
或者$('#id').html("");
這樣就可以完美解決問題。
=========================我是分隔符==========================
如果到現在你還沒有看懂,總結2步:
1、清空圖表所在的div,js代碼是document.getElementById('bigDiv').innerHTML = "";
2、在echarts.init(document.getElementById("id"))前增加代碼document.getElementById("id").removeAttribute("_echarts_instance_");
如果有疑問歡迎留言。
效果圖如下:
更改前,如果數據加載失敗圖表仍在:
更改后,如果加載失敗圖表也消失:
下面是正常情況下的圖表: