一、問題描述
根據用戶的操作,通過Ajax請求,獲取某段時間內的某數據趨勢折線圖數據。用戶切換數據項或更改時間段時,ie中渲染的折線圖包含了上一次獲取的數據,導致數據錯亂,如下圖所示:




二、代碼
數據項1setOption代碼:
myChart3.setOption({ tooltip: { trigger: 'axis', formatter: _name + ':-' }, xAxis: [{ data: ["2016-12-15", "2016-12-31", "2017-1-1", "2017-1-15", "2017-1-31", "2017-2-1", "2017-2-15"] }], series: [{ name: _name ? _name : '違規總數', data: [2, 66, 10, 248, 50, 168, 22] }] });
數據項2setOption代碼:
myChart3.setOption({ tooltip: { trigger: 'axis', formatter: _name + ':-' }, xAxis: [{ data: ["2017-1-15", "2017-1-31", "2017-2-1", "2017-2-15"] }], series: [{ name: _name ? _name : '違規總數', data: [55, 11, 3, 99] }] });
三、解決方案
通過測試,發現ie瀏覽器在首次設置數據項數據時,不會發生數據錯亂。數據錯亂只發生在再次使用setOption設置數據,由此猜測是上次的數據遺留影響了數據的顯示。在API中找到了clear方法,用於清空當前實例,官網中解釋如下:

在setOption之前插入如下代碼:
myChart3.clear();
initChart3Option();
再次測試ie中的數據項2:

四、結束語
使用echarts時出現數據混亂,可以先嘗試使用clear看看效果啦,clear之后記得重新initOption喔,因為clear之后,之前配置的圖表參數也沒啦~\(≧▽≦)/~若是內容有錯誤或遺漏,歡迎大家批評指正~
