首頁 > web前端 > js教程 > 在HTML5+JS+JQuery+ECharts中如何實現非同步載入問題

在HTML5+JS+JQuery+ECharts中如何實現非同步載入問題

亚连
發布: 2018-06-20 15:02:33
原創
1275 人瀏覽過

這篇文章主要介紹了HTML5 JS JQuery ECharts實現異步加載問題,需要的朋友可以參考下

這幾天,看了一下ECharts官網的API和Demo發現很有意思,於是就利用模型預測產生的資料做一個偽實時的動態資料顯示。

首先,建立一個index.html的文件,我用的vscode打開的,進行寫。

1.插入一個標籤

<p id="main" style="width:600px;height:400px;"></p>
登入後複製

設定他的一些style(自行美化,我很懶!!!)。

2.在body下建造一個<script>腳本(為什麼要在body下寫js腳本呢?因為這是提高用戶體驗,可自行百度深層的原因~~~)。 </p><p>3.腳本寫啥呢?別急,慢慢來的,填一些基本參數(可透過此連結飛到Echarts官網的設定參考一下)</p><p>    (3)初始化了之後,我們就可以ajax異步讀取本地文件了~~~~</p> <p>其中不懂堆疊的(連結在此這個是我Google的,有可能被牆~~)不懂push,shift操作資料的(連結在此這個應該不會被牆~~)</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"> var myChart = echarts.init(document.getElementById(&amp;#39;main&amp;#39;));</pre><div class="contentsignin">登入後複製</div></div> <p>我來解釋一下,這個非同步載入的原理是這樣子的:</p><p>(1)我們現在載入一個.json文件,存在一個變數result裡,開始進行資料的操作,利用堆疊的概念先存一個圖上要顯示的數據量,假設是1000個點,存到data裡(這是一個隊列)你如果要實現動態的實時的數據,看著數據他會動~~~~你需要存一個資料進去,但是呢這個佇列只有1000個容量,放不下怎麼辦,沒關係啊,你先取一個出來不就行了嘛,就這樣循環下去~~~~</p><p>(2)但是啊,取一個存一個太麻煩了,我們在設定一個定時器setInterval()在這個裡面,每過2s更新2個點(怎麼更新呢,就是data.shift()</p><p>data.push( )</p><p>模擬了堆疊~~~~</p><p>這樣就達到了動態資料了~~~~</p><p>好吧,如果只是這樣也太low了,我要實現一個框架資料庫前端的真正資料動起來~~~~讓我在研究幾天~~~~~~</p><p>好了,不廢話了,下面是源碼,有需要的童鞋可以自己跑一下,看看可不可以動~~~~~</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">$.ajax({ type:&quot;get&quot;, // async:true, url:&quot;test_data.json&quot;, data:{}, dataType:&quot;json&quot;, success:function(result){ var datas=result if(result){ var m=0; for(var i=0;i&lt;result.length;i++){ if(m&lt;1000){ datas.shift(); date.push(result[i][&quot;time&quot;]); data.push(result[i][&quot;AM23SIG0206.AV&quot;]); m+=1; } else{ break; } myChart.hideLoading(); setInterval(function(){ for(var n=0;n&lt;2;n++){ date.shift(); date.push(datas[n][&quot;time&quot;]); data.shift(); data.push(datas[n][&quot;AM23SIG0206.AV&quot;]); } myChart.setOption({ xAxis:{ data:date }, series:[ { name:&quot;参数&quot;, data:data } ]}); for(var nn=0;nn&lt;2;nn++){ datas.shift() } },2000); } } }, error:function(errorMsg){ alert(&quot;图表请求数据失败!&quot;); myChart.hideLoading(); myChart_2.hideLoading(); } })</pre><div class="contentsignin">登入後複製</div></div><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Charts</title> <script type="text/javascript" src="echarts.min.js"></script> <p id="main" style="width:600px;height:400px;"></p>

登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

在JS中如何實現標籤滾動切換

在JS中如何實現圖片居中懸浮效果

在JS CSS中如何實現捲動數字時鐘

在微信小程式中如何實作錄音與播放錄音功能

在vue element中如何實作表格分頁

以上是在HTML5+JS+JQuery+ECharts中如何實現非同步載入問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板