最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue之使用echarts圖表setOption多次很卡問題及解決

 更新時間:2023年07月01日 09:49:00   作者:ISM Web組態(tài)軟件  
這篇文章主要介紹了vue之使用echarts圖表setOption多次很卡問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

使用echarts圖表setOption多次很卡

項(xiàng)目場景

在開發(fā)ISM組態(tài)軟件時,使用echarts圖表,拖拽圖表很卡。

問題描述

在vue中使用echarts使用setOption更新加載圖形很慢

原因分析

由于this.echartsView = echarts.init(view, null);初始化圖表時,echartsView 變量是定義在data里,這就導(dǎo)致了圖表setOption和resize時,canvas觸發(fā)了vue監(jiān)聽而更新,而每一次的更新,導(dǎo)致加載變慢

解決方案

網(wǎng)上都是說把變量定義在script里,是可以解決,但是這樣針對一個組件的情況,但是如果一個頁面有多個組件,這樣定義在script的變量是多個組件共享的,就會導(dǎo)致其他組件顯示不正常。

針對這個情況。直接在created里面定義this.echartsView

this.echartsView = null

或者直接

this.echartsView = echarts.init(view, null);

不要在data里面定義echartsView 就可以了。

echarts大數(shù)據(jù)多圖表繪制卡頓解決方案

頁面卡頓原因

1、頁面繪制的圖比較多,每一個圖例在沒有數(shù)據(jù)的時候它會創(chuàng)建一個定時器去渲染氣泡,頁面切換后,echarts圖例是銷毀了,但是這個echarts的實(shí)例還在內(nèi)存當(dāng)中,同時它的氣泡渲染定時器還在運(yùn)行。這就導(dǎo)致Echarts占用CPU高,導(dǎo)致瀏覽器卡頓,當(dāng)數(shù)據(jù)量比較大時甚至瀏覽器崩潰

2、數(shù)據(jù)量已經(jīng)大到瀏覽器卡死了

解決方法

1、在mounted()方法和destroy()方法之間加一個beforeDestroy()方法釋放該頁面的chart資源,我也試過使用dispose()方法,但是dispose銷毀這個圖例,圖例是不存在了,但圖例的resize()方法會啟動,則會報(bào)沒有resize這個方法,而clear()方法則是清空圖例數(shù)據(jù),不影響圖例的resize,而且能夠釋放內(nèi)存,切換的時候就很順暢了,實(shí)現(xiàn)代碼如下:

beforeDestroy(){
? ? this.$refs.myChart && this.$refs.myChart.clear();
};

2、數(shù)據(jù)量已經(jīng)大到瀏覽器卡死,其實(shí)最好從設(shè)計(jì)上優(yōu)化,要么不要一個頁面展示那么多圖,要么讓服務(wù)端把數(shù)據(jù)做一下采樣,畢竟那么多的點(diǎn)也沒法看,另外echarts也提供了大數(shù)據(jù)量(百萬以上)的渲染場景,分片加載數(shù)據(jù)和增量渲染。

在大數(shù)據(jù)量的場景下(例如地理數(shù)的打點(diǎn)),就算數(shù)據(jù)使用二進(jìn)制格式,也會有幾十或上百兆,在互聯(lián)網(wǎng)環(huán)境下,往往需要分片加載。

appendData 接口提供了分片加載后增量渲染的能力,渲染新加入的數(shù)據(jù)塊時不會清除原有已經(jīng)渲染的部分,實(shí)現(xiàn)代碼如下:

?var loadedChunkIndex = 0;
var chunkCount = rawData.length;//大數(shù)據(jù)被分了幾組list
function appendData() {
? ? if (loadedChunkIndex >= chunkCount) {
? ? ? ? return;
? ? }
? ? setTimeout(function () {
? ? ? ? chart.appendData({seriesIndex: 0, data: rawData[loadedChunkIndex]});
? ? ? ? loadedChunkIndex++;
? ? ? ? appendData();
? ? }, 300);
}
appendData();

注意事項(xiàng):

1、我們現(xiàn)在所有圖表組件中接口數(shù)據(jù)都是通過dataset參數(shù)實(shí)現(xiàn)的,對于巨大數(shù)據(jù)量的渲染(如百萬以上的數(shù)據(jù)量),需要使用 appendData 進(jìn)行增量加載,這種情況不支持使用 dataset,需要使用series.data。

2、目前并非所有的圖表都支持分片加載時的增量渲染。目前支持的圖有:ECharts 基礎(chǔ)版本的 散點(diǎn)圖(scatter) 和 線圖(lines)。ECharts GL 的 散點(diǎn)圖(scatterGL)、線圖(linesGL) 和 可視化建筑群(polygons3D)。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue2安裝tailwindcss的詳細(xì)步驟

    vue2安裝tailwindcss的詳細(xì)步驟

    這篇文章主要介紹了vue2安裝tailwindcss,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 深入探討Vue.js組件和組件通信

    深入探討Vue.js組件和組件通信

    這篇文章主要和大家一起深入探討Vue.js組件和組件通信的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue el-upload手動上傳實(shí)現(xiàn)過程

    vue el-upload手動上傳實(shí)現(xiàn)過程

    這篇文章主要介紹了vue el-upload手動上傳實(shí)現(xiàn)過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Vue3 + ElementPlus動態(tài)合并數(shù)據(jù)相同的單元格的完整代碼

    Vue3 + ElementPlus動態(tài)合并數(shù)據(jù)相同的單元格的完整代碼

    文章介紹了如何使用ElementPlus的Table組件動態(tài)合并單元格,適用于后臺數(shù)據(jù)返回格式動態(tài)且沒有規(guī)律的場景,包括數(shù)據(jù)處理和按鈕操作,文章還附帶了效果圖和代碼詳解,希望能對大家有所幫助,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • Vue中子組件不能修改父組件傳來的Prop值的原因分析

    Vue中子組件不能修改父組件傳來的Prop值的原因分析

    在Vue中,父子組件之間通過Prop和Event實(shí)現(xiàn)了數(shù)據(jù)的雙向綁定,但是,Vue設(shè)計(jì)者為什么不允許子組件修改父組件傳遞的Prop呢,本文就來帶大家探究為什么子組件不能修改Prop,需要的朋友可以參考下
    2023-06-06
  • vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁面緩存功能

    vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁面緩存功能

    這篇文章主要介紹了vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁面緩存功能,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 關(guān)于vue中如何監(jiān)聽數(shù)組變化

    關(guān)于vue中如何監(jiān)聽數(shù)組變化

    這篇文章主要介紹了關(guān)于vue中如何監(jiān)聽數(shù)組變化,對vue感興趣的同學(xué),必須得參考下
    2021-04-04
  • vue-cli使用stimulsoft.reports.js的詳細(xì)教程

    vue-cli使用stimulsoft.reports.js的詳細(xì)教程

    Stimulsoft?Reports.JS是一個使用JavaScript和HTML5生成報(bào)表的平臺。它擁有所有擁來設(shè)計(jì),編輯和查看報(bào)表的必需組件。該報(bào)表工具根據(jù)開發(fā)人員數(shù)量授權(quán)而不是根據(jù)應(yīng)用程序的用戶數(shù)量。接下來通過本文給大家介紹vue-cli使用stimulsoft.reports.js的方法,一起看看吧
    2021-12-12
  • vue+antDesign實(shí)現(xiàn)樹形數(shù)據(jù)展示及勾選聯(lián)動

    vue+antDesign實(shí)現(xiàn)樹形數(shù)據(jù)展示及勾選聯(lián)動

    本文主要介紹了vue+antDesign實(shí)現(xiàn)樹形數(shù)據(jù)展示及勾選聯(lián)動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • vue項(xiàng)目中禁用瀏覽器緩存配置案例

    vue項(xiàng)目中禁用瀏覽器緩存配置案例

    這篇文章主要介紹了vue項(xiàng)目中禁用瀏覽器緩存配置案例,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

旺苍县| 太湖县| 高要市| 陵水| 张家口市| 宣恩县| 永川市| 宜宾市| 石屏县| 任丘市| 诸暨市| 石泉县| 文化| 嘉善县| 多伦县| 临城县| 鄂托克前旗| 闵行区| 和田市| 英超| 天等县| 嘉鱼县| 塘沽区| 抚顺县| 河东区| 南溪县| 甘泉县| 衡水市| 师宗县| 巴里| 望城县| 平南县| 唐河县| 定陶县| 贡觉县| 乡宁县| 西昌市| 棋牌| 宿迁市| 秭归县| 航空|