最小物聯網系統(六)——Ajax打造視覺化
最後效果見:http://b.phodal.com/
程式碼位置:http://b.phodal.com/js/app.js
我覺得似乎我把這個程式碼寫長了,但是我不是故意,只是必需的。先觀察Ajax部分:
Ajax
剝離後的Ajax部分程式碼如下所示,主要用的是jQuery框架的getJSON來實現的
var dataLength = [];
function drawTemp() {
var zero = [];
$.getJSON('/athome/', function(json) {
var items = [];
dataLength.push(json.length);
$.each(json, function(key, val) {
zero.push(val.temperature);
});
};
實際上,我們做的只是從/athome/下面獲取資料,再將資料堆到陣列裡面,再把這部分放到圖形中。等等,什麼是Ajax?
- AJAX = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML)。
- AJAX 不是新的程式語言,而是一種使用現有標準的新方法。
- AJAX 是與伺服器交換資料並更新部分網頁的藝術,在不重新載入整個頁面的情況下。
JSON我們前面也已經瞭解過了,看看getJSON吧。
jQuery. getJSON
方法定義:jQuery.getJSON( url, data, callback )
通過get請求得到json資料
- ·url用於提供json資料的地址頁
- ·data(Optional)用於傳送到伺服器的鍵值對
- ·callback(Optional)回撥函式,json資料請求成功後的處理函式
我想你似乎應該懂得了一點,就是在不重新整理網頁的同時,用javascript獲取資料放到圖表上,就這麼簡單。
HighChart
再省去一部分,摘自我原來的部落格
HIGHCHARTS Highcharts是一個製作圖表的純Javascript類庫,主要特性如下:
- 相容性:相容當今所有的瀏覽器,包括iPhone、IE和火狐等等;
- 對個人使用者完全免費;
- 純JS,無BS;
- 支援大部分的圖表型別:直線圖,曲線圖、區域圖、區域曲線圖、柱狀圖、餅裝圖、散佈圖;
- 跨語言:不管是PHP、Asp.net還是Java都可以使用,它只需要三個檔案:一個是Highcharts的核心檔案highcharts.js,還有a canvas emulator for IE和Jquery類庫或者MooTools類庫;
- 提示功能:滑鼠移動到圖表的某一點上有提示資訊;
- 放大功能:選中圖表部分放大,近距離觀察圖表;
- 易用性:無需要特殊的開發技能,只需要設定一下選項就可以製作適合自己的圖表;
- 時間軸:可以精確到毫秒;
不過因為專案原因,所以可能不會再使用這個,只對個人免費,現在的考慮是基於D3做一個新的。
官方示例程式碼
$(function () {
$('#container').highcharts({
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
subtitle: {
text: 'Source: WorldClimate.com',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '°C'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: [{
name: 'Tokyo',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
}, {
name: 'New York',
data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
}, {
name: 'Berlin',
data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
});
});
我承認我也不想看這些程式碼,但是這樣子似乎使原文的長度變長了。大部分人也省得去查詢了。
所以我們要做的只是用陣列代替data
jQuery Mobile
在首頁上看到的那個效果是jQuery Mobile。。
相關文章
- 最小物聯網系統——Dashboard
- 最小物聯網系統(五)——Laravel RESTful模板化LaravelREST
- 最小物聯網系統(三)——建立RESTfulREST
- 3d視覺化物聯網定製3D視覺化
- 最小物聯網系統(四)——詳解Laravel的RESTfulLaravelREST
- 最小物聯網系統(九)——Android客戶端Android客戶端
- 5G智慧產業園區數字孿生視覺化物聯網系統產業視覺化
- 智慧消防給水物聯網系統,視覺化監控預警,智慧化運維管理視覺化運維
- 縱論物聯網(六):基於Linux的物聯網作業系統Linux作業系統
- 【數字孿生】智慧水泥廠三維視覺化物聯網系統解決方案視覺化
- 物聯網+分析,打造穩定可靠的電網系統
- 最小物聯網系統(七)——與伺服器通訊伺服器
- 最小物聯網系統設計——給Laravel新增測試Laravel
- 【數字孿生】智慧資料中心三維視覺化物聯網系統建設方案視覺化
- 最小物聯網系統(八)——與微控制器通訊
- Node-RED是物聯網IoT視覺化編排工具視覺化
- 工業物聯網解決方案:智慧工廠數字孿生視覺化監測系統視覺化
- 物聯網閘道器助力打造煤礦安全監控系統
- 監控系統網路視覺化傳輸視覺化
- 車聯網視覺化,推動智慧網聯車產業革新視覺化產業
- 物聯網作業系統列表作業系統
- 騰訊物聯網作業系統正式開源,最小體積僅1.8KB作業系統
- 最小物聯網系統(二)——RESTful(一)Laravel安裝與資料庫設定RESTLaravel資料庫
- 資料視覺化大屏能為物聯網專案帶來什麼視覺化
- PNP物聯網加速營 | 優鍩ThingJS攜智慧園區視覺化系統助力城市數字化升級 3dJS視覺化3D
- 物聯網系統時代:iOS、安卓拜拜?iOS安卓
- 一小時搭建 EMQ X + InfluxDB + Grafana 物聯網資料視覺化方案MQUXGrafana視覺化
- 全新物聯網資料整合 :Flow 視覺化編排 & 雙向資料橋接視覺化橋接
- 物聯網資料卡系統原始碼——物聯網技術架構圖原始碼架構
- 物聯網發展的六大智慧化前景
- 智慧海洋三維視覺化,科技運維助工業物聯網一臂之力視覺化運維
- 彈簧系統三維視覺化視覺化
- 01-物聯網專案-物美智慧-系統搭建
- 物聯網應用之 - 智慧搜尋系統
- 物聯網資料卡系統原始碼——物聯網的主要應用領域原始碼
- 數維圖數字孿生Web3D視覺化物聯網管理平臺Web3D視覺化
- 當物聯網系統出現故障:使用低質量物聯網資料的風險
- 縱論物聯網(五):除了Linux,還有什麼物聯網作業系統Linux作業系統