轉發:Ajax動態畫EChart圖表

本人由于項目需要,在狀態變化的時候需要動態繪制對應數據的EChart圖表,并且不刷新整個網頁。

所以就用Ajax動態畫EChart圖表,下面是開發過程中遇到的一些坑的總結。

流程:頁面首次加載時展示一幅原始的圖形,若后臺數據更新,則進行一定的業務處理后,前端通過AJAX動態繪制出最新的數據

一、前端JSP代碼

????準備一個放圖表的容器?

????<div id="AScanChart" style="width:50%; height: 60%;float: left;"></div>

????//初始化echarts實例
????var myAScan = echarts.init(document.getElementById('AScanChart'));
????//使用制定的配置項和數據顯示圖表

????myAScan.setOption(aScanOption);

? ? 注:這里省略了原始圖形aScanOption的代碼

? ? 下面是JS代碼

????//定時ajax請求判斷是否有報警
$(document).ready(function() {
setInterval(showAlert, 10000);//每隔10秒調用一次
});
function showAlert() {
var url = "monitorAction_showAlert.action";
var sendData = {
"tempSensorNum" : "${monitor.sensorNum}"
};
//發送post請求
$.post(url, sendData, function(backData, status) {
//window.alert(backData);
//window.alert(status);


var showAlertJsonString = backData.split("&&");
//window.alert(showAlertJsonString[0]);
//將JSON字符串轉出json對象
var showAlertJsonObject = eval("(" + showAlertJsonString[0] + ")");


//window.alert(showAlertJsonObject[0].alertType);
if (showAlertJsonObject[0].alertType == 1) {


$("#blink").html("缺陷報警");
setInterval(changeColor, 250); //設置一個定時器,每200毫秒調用一次變色函數
} else {
$("#blink").html("監測正常");
}
if (showAlertJsonString[1] != ""
&& showAlertJsonObject[0].typeChange == 1) {
var monitorObject = eval("(" + showAlertJsonString[1] + ")");
//window.alert(monitorObject[0].sensorNum);
var xData=eval("(" + monitorObject[0].xDataJson + ")");
var aScanData=eval("(" + monitorObject[0].aScanDataJosn + ")");
var bScanData=eval("(" + monitorObject[0].baseAScanDataJosn + ")");

myAScan.clear();
myAScan.setOption({
title : {
text : 'AScan data'
},
tooltip : {
trigger : 'axis',
axisPointer : {
type : 'cross'
},
},
legend : {
data : [ '用戶來源' ]
},
xAxis : {
name : '距離(m)',
data : xData
},
yAxis : {
name : '(%)'
},
toolbox : {
left : 'center',
feature : {
dataZoom : {
yAxisIndex : 'none'
},
dataView : {
readOnly : false
},
restore : {},
}
},
dataZoom : [ {
type : 'inside'
} ],
series : [ {
name : 'signal',
type : 'line',
data : aScanData
}, {
name : 'baseSignal',
type : 'line',
data : bScanData
} ]
},true);
}
});
}


? ? 注:

????var showAlertJsonObject = eval("(" + showAlertJsonString[0] + ")");

????var xData=eval("(" + monitorObject[0].xDataJson + ")");

????var aScanData=eval("(" + monitorObject[0].aScanDataJosn + ")");

????var bScanData=eval("(" + monitorObject[0].baseAScanDataJosn + ")");

? ? 1.這4句代碼是關鍵:由于后端傳過來的是JSON字符串,而ECHart的圖表需要JSON對象,所有首先將JSON字符串轉JSON對象(第一句),這樣還沒完,現在取出的數據還是字符串,需要將對象.對應的字段,再進行一次JSON轉換(這是我項目中的坑)。

? ? 2.由于最開始畫了圖,所以更新時加上myAScan.clear();。先清空再畫

? ? 3.有些情況下若未更新,則設置Option的時候,給第2個參數賦為true即可


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247547.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247547.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如果硬盤不顯示可以這么處理

http://www.zhuangjiba.com/soft/9574.html轉載于:https://www.cnblogs.com/braveheart007/p/11167311.html

Highcharts的餅圖大小的控制

在Highcharts中&#xff0c;餅圖的大小是Highcharts自動計算并進行繪制。餅圖的大小受數據標簽大小、數據標簽到切片的距離影響。當數據標簽內容較多&#xff0c;并且距離切片較遠時&#xff0c;餅圖就會被壓縮的很小。解決這個問題&#xff0c;有以下幾種方法&#xff1a;&…

轉:谷歌離線地圖基礎

一.需要文件 gapi3文件夾&#xff1a;存放接口等tilemap文件夾&#xff1a;存放圖片gapi.js文件maptool.js文件 二.html配置 <script type"text/javascript" src"gapi.js"></script> <script type"text/javascript" src"map…

HTTP Header 詳解

搜集資料 HTTP&#xff08;HyperTextTransferProtocol&#xff09;即超文本傳輸協議&#xff0c;目前網頁傳輸的的通用協議。HTTP協議采用了請求/響應模型&#xff0c;瀏覽器或其他客戶端發出請求&#xff0c;服務器給與響應。就整個網絡資源傳輸而言&#xff0c;包括message-h…

Windows CE 6.0中斷處理過程(轉載)

這里我們主要討論的是CE的中斷建立和中斷相應的大概流程以及所涉及的代碼位置。這里所講述的&#xff0c;是針對ARM平臺的。在CE的中斷處理里面&#xff0c;有一部分工作是CE Kernel完成的&#xff0c;有一部分工作是要由OEM完成的。 Kernel代碼工作 ExVector.s&#xff1a;中斷…

document.createDocumentFragment 以及創建節點速度比較

document.createDocumentFragment document.createDocumentFragment()方法創建一個新空白的DocumentFragment對象。 DocumentFragments是DOM節點。它們不是主DOM樹的一部分。通常的用例是創建文檔片段&#xff0c;將元素附加到文檔片段&#xff0c;然后將文檔片段附加到DOM樹。…

Javascript重溫OOP之原型與原型鏈

prototype原型對象 每個函數都有一個默認的prototype屬性&#xff0c;其實際上還是一個對象&#xff0c;如果被用在繼承中&#xff0c;姑且叫做原型對象。 在構造函數中的prototype中定義的屬性和方法&#xff0c;會被創建的對象所繼承下來。舉個栗子&#xff1a; function F()…

webpack超詳細配置

在這里就不詳細介紹webpack來源以及作用了, 本篇博文面向新手主要說明如何配置webpack, 以及webpack的使用方法, 直到創建出一個合理的屬于自己webpack項目; 流程 webpack安裝 Step 1: 首先安裝Node.js, 可以去Node.js官網下載.Step2: 在Git或者cmd中輸入下面這段代碼, 通過全局…

小白十分鐘-推薦導航欄

大腿繞道&#xff0c;給小白學習用&#xff0c;上代碼 <div class"list"><div class"infor"><ul class"left"><li><a href"">限時特價</a></li><li><a href"">熱門推…

Underscore.js常用方法介紹

Underscore.js是一個很精干的庫&#xff0c;壓縮后只有4KB。它提供了幾十種函數式編程的方法&#xff0c;彌補了標準庫的不足&#xff0c;大大方便了JavaScript的編程。MVC框架Backbone.js就將這個庫作為自己的工具庫。除了可以在瀏覽器環境使用&#xff0c;Underscore.js還可以…

掌握ES6/ES2015核心內容

ECMAScript 6&#xff08;以下簡稱ES6&#xff09;是JavaScript語言的下一代標準。因為當前版本的ES6是在2015年發布的&#xff0c;所以又稱ECMAScript 2015。 也就是說&#xff0c;ES6就是ES2015。 雖然目前并不是所有瀏覽器都能兼容ES6全部特性&#xff0c;但越來越多的程序員…

express-generator——Express應用生成器賊快!

通過應用生成器工具 express 可以快速創建一個應用的骨架。 通過如下命令安裝&#xff1a; $ npm install express-generator -g-h 選項可以列出所有可用的命令行選項&#xff1a; $ express -hUsage: express [options] [dir]Options:-h, --help output usage inform…

轉:canvas--放大鏡效果

<!DOCTYPE html><html><head><meta charset"UTF-8"><title>鼠標事件</title></head><body><canvas id"canvas"></canvas><canvas id"offCanvas" style" display: none;&qu…

MON

早上5點,咪咪牛就醒了,開始跳到我邊上,用白毛毛把我弄醒,在我身上走來走去,把她按住撫摸也不能讓她停止.....只能拎起來扔到邊上了 ;)看起來還的確是很調皮的貓咪呢昨天晚上就開始不太怕我了,走到我的椅子邊上喵喵叫,直到把她放在身上,才慢慢睡覺,滿可愛的早上出門叫車,一車正停…

CSS做個Switch開關

Switch開關&#xff1a;根據需求可知&#xff0c;Switch開關只有兩種選擇&#xff0c;true或false。所以我們想到HTML的checkbox控件&#xff0c;用它來做。  <input id"switch" type"checkbox" class"switch" />但是在瀏覽器中&#xf…

vue小記錄1

1.入口index.html文件 做reset.css初始化&#xff0c;視口viewport設置 2.規范化eslint配置&#xff08;常用&#xff09; &#xff08;1&#xff09;rules -->"semi"分號 "semi":[error,alway], &#xff08;2&#xff09;indent 空格 "inde…

解決虛擬機能ping通宿主機,而宿主機不能ping通虛擬機

解決虛擬機能ping通宿主機&#xff0c;而宿主機不能ping通虛擬機 首先&#xff0c;查看宿主機的網卡狀態 如果沒有&#xff0c;打開虛擬機&#xff0c;選擇編輯 打開虛擬網絡編輯器&#xff0c;并選擇更改設置 勾選將設備適配器連接此網絡 完成&#xff0c;這樣宿主機便可以pin…

mongo使用學習FAQ

1:mongo的集合和database區分大小寫么? 在 MongoDB 中&#xff0c;數據庫和集合的名稱是區分大小寫的。這意味著&#xff0c;數據庫 MyDatabase 和 mydatabase 或集合 MyCollection 和 mycollection 會被視為不同的數據庫或集合。因此&#xff0c;在操作數據庫和集合時&#…

前端下載的實現

前端很多項目中&#xff0c;都有文件下載的需求&#xff0c;特別是JS生成文件內容&#xff0c;然后讓瀏覽器執行下載操作&#xff08;例如在線圖片編輯、在線代碼編輯、iPresst等&#xff09;。但受限于瀏覽器&#xff0c;很多情況下我們都只能給出個鏈接&#xff0c;讓用戶點擊…

V記錄2(文檔)Vue.extend構造器

1.簡單介紹 Vue.extend(options) 參數&#xff1a;對象 用法&#xff1a;使用Vue構造器&#xff0c;創建一個“子類”&#xff0c;參數是一個包含組件選項的對象&#xff0c;其中,data選項中必須是函數 描述&#xff1a;Vue.extend返回的是一個“擴展實例構造器”&#xff0c;也…