999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Html網(wǎng)頁(yè)展示污染物趨勢(shì)曲線一種實(shí)現(xiàn)

2019-05-08 03:16:58安太興
中國(guó)科技縱橫 2019年6期

安太興

摘 要:本文介紹了利用html canvas,jQuery展示污染物排放實(shí)時(shí)數(shù)據(jù)的一種方法。目前網(wǎng)頁(yè)上顯示曲線主要有更換圖片的方式、利用Adobeflash插件顯示的方式和基于html canvas的方式。更換圖片的方式,實(shí)時(shí)性不好,適合時(shí)間間隔比較大的情況。Adobeflash插件方式,實(shí)時(shí)性好,有很好的用戶體驗(yàn),但容易給系統(tǒng)帶來(lái)安全隱患,也可能遭到用戶拒絕安裝,而canvas繪圖方式實(shí)時(shí)性好,而且相對(duì)安全。隨著html標(biāo)準(zhǔn)的發(fā)展,canvas得到更多的瀏覽器廠商支持,成為網(wǎng)頁(yè)開(kāi)發(fā)不錯(cuò)的選擇。

關(guān)鍵詞:html5;canvas;jQuery趨勢(shì)曲線

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2019)06-0049-02

0 前言

環(huán)境監(jiān)控系統(tǒng)中,不僅要顯示污染物排放的實(shí)時(shí)數(shù)據(jù),還要查看歷史數(shù)據(jù),以及數(shù)據(jù)的連續(xù)變化趨勢(shì)。本文介紹了在網(wǎng)頁(yè)中顯示趨勢(shì)曲線的一種方法。以前在網(wǎng)頁(yè)中顯示動(dòng)畫(huà),基本上都是使用AdobeFlash插件。但是瀏覽器開(kāi)發(fā)商看插件不順眼,逐漸不再提供支持。而Html5提供了flash的替代方案,與之前版本最大的變化之一是添加了canvas 元素。canvas提供了一個(gè)通用的繪圖平面,開(kāi)發(fā)人員可以用它完成一些通用常用Adobeflash來(lái)完成的任務(wù)。它使瀏覽器可以直接處理原來(lái)要由Adobeflash插件來(lái)處理的內(nèi)容。

1 界面設(shè)計(jì)

如圖1界面草圖,界面分為趨勢(shì)曲線控制區(qū)和曲線顯示區(qū)??刂茀^(qū)顯示曲線的名稱,當(dāng)前值、單位可以設(shè)置曲線顯示的顏色、寬度、類型、上限值、下限值,可以根據(jù)上下限值調(diào)整曲線的顯示比例。趨勢(shì)顯示區(qū)顯示曲線的圖像,圖例顯示區(qū)顯示曲線的圖例最大值最小值。時(shí)間刻度顯示區(qū)顯示x時(shí)間軸及時(shí)間刻度。

2 對(duì)象設(shè)計(jì)

本系統(tǒng)設(shè)計(jì)9個(gè)對(duì)象,如圖2類圖草圖所示,TrendGroup用于設(shè)置全局屬性。TrendController負(fù)責(zé)控制區(qū)的顯示及設(shè)置。TrendCanvas負(fù)責(zé)曲線的繪制,包括幾個(gè)對(duì)象。PanelBorder負(fù)責(zé)canvas邊框的繪制。PanelBackground負(fù)責(zé)背景圖案的繪制,GridLine負(fù)責(zé)繪制背景的網(wǎng)格線,XAxis負(fù)責(zé)繪制時(shí)間軸及時(shí)間刻度。Legend負(fù)責(zé)繪制圖例。TrendCurve負(fù)責(zé)繪制曲線。

幾個(gè)對(duì)象都實(shí)現(xiàn)了painting接口,為了避免看起里圖形混亂,在圖中沒(méi)有畫(huà)出。

3 幾個(gè)主要的方法

(1)$.ajax(options)。此函數(shù)用于向后臺(tái)發(fā)起ajax請(qǐng)求。參數(shù)options是一個(gè)對(duì)象實(shí)例,對(duì)象的屬性定義了這個(gè)操作的參數(shù)。返回值是XHR的實(shí)例。Options的主要的屬性有:

url,字符串型,是請(qǐng)求的url地址。

type,字符串型,是將要使用的http方法,默認(rèn)為GET。

dataType,字符串型,用來(lái)標(biāo)識(shí)請(qǐng)求響應(yīng)返回的數(shù)據(jù)的類型。這個(gè)值決定在把數(shù)據(jù)傳遞給回調(diào)函數(shù)之前進(jìn)行什么后續(xù)處理。有效值為:xml,html,json,script,text。

timeout,數(shù)值型,設(shè)置ajax請(qǐng)求的超時(shí)值。

success,函數(shù)型,請(qǐng)求成功時(shí)的回調(diào)函數(shù)。

error,函數(shù)型,請(qǐng)求響應(yīng)為錯(cuò)誤時(shí)的回調(diào)函數(shù)。

complete,函數(shù)型,在請(qǐng)求完成時(shí)的回調(diào)函數(shù)。

async,布爾值,如果設(shè)置為false,則為同步請(qǐng)求,在默認(rèn)情況下,為異步請(qǐng)求。

本文用來(lái)獲取服務(wù)器數(shù)據(jù)。

(2)$.getJSON(url,parameter,callback)。利用指定的url、使用parameters所帶的參數(shù)發(fā)起GET請(qǐng)求。響應(yīng)解析為JSON字符串。結(jié)果傳遞給callback。函數(shù)返回XHR實(shí)例。

參數(shù)介紹如下:

url,字符串,請(qǐng)求的url地址。

parameters,一個(gè)對(duì)象,其屬性用于構(gòu)造查詢字符串,并追加到url。

callback,函數(shù)型,回調(diào)函數(shù),用于處理響應(yīng)。

本文用于訪問(wèn)服務(wù)器數(shù)據(jù),獲取曲線的參數(shù)和時(shí)間數(shù)據(jù)。

(3)$.(selector).append(content)。用來(lái)向指定元素末尾添加內(nèi)容。本文中用于向趨勢(shì)控制區(qū)添加控件。

(4)canvas.getContext(“2d”)。返回用于繪圖的context。為了能使用canvas元素繪圖,需要獲得一個(gè)上下文對(duì)象,這個(gè)對(duì)象開(kāi)放針對(duì)特定圖形的繪制函數(shù)。

(5)Context.fillRect(x,y,width,height)。此函數(shù)用于繪制一個(gè)實(shí)心的矩形,x,y是矩形的左上角坐標(biāo),width,height分別指出繪制的寬度和高度。

(6)Context.clearRect(x,y,width,height)。此函數(shù)清除一個(gè)矩形區(qū)域,用于重繪窗口。x,y指出矩形區(qū)域的左上角,width和height指出矩形寬度和高度。

(7)Context.strokeRect(x,y,width,height)。繪制一個(gè)空心的矩形,用于繪制矩形的邊框。X,y,指出矩形區(qū)域的左上角,width和height指出矩形的寬度和高度。

(8)Context.save()。通過(guò)把當(dāng)前狀態(tài)壓到繪圖狀態(tài)棧上,保存canvas的繪制狀態(tài)屬性的值。繪制狀態(tài)包括:當(dāng)前的轉(zhuǎn)換矩陣,當(dāng)前的剪切區(qū)域,當(dāng)前的虛線列表,以下屬性的當(dāng)前值:strokeStyle,fillStyle,globalAlpha, lineWidth, lineCap,lineJoin,miterLimit,lineDashOffset, shadowOffsetX,shadowOffsetY,shadowBlur,shadowColor, globalCompositeOperation,font,textAlign,textBaseline, direction,imageSmoothingEnabled.

(9)Context.restore()。通過(guò)在繪圖狀態(tài)棧中彈出頂端的狀態(tài),將canvas的繪圖狀態(tài)恢復(fù)到保存狀態(tài)時(shí)。如果沒(méi)有保存過(guò)狀態(tài),此方法不做改變。

(10)Context.moveTo(x,y)。此函數(shù)將一個(gè)新的子路徑的起始點(diǎn)移動(dòng)到(x,y)坐標(biāo)

(11)Context.lineTo(x,y)。此函數(shù)使用直線連接子路徑的終點(diǎn)到(x,y),并不真正地繪圖。

(12)Context.stroke()。使用非零環(huán)繞規(guī)則,根據(jù)當(dāng)前的畫(huà)線樣式,繪制當(dāng)前或已經(jīng)存在的路徑。

(13)Context.fillText(text,x,y[,width])。此函數(shù)在(x, y)位置填充文本。如果選項(xiàng)的第四個(gè)參數(shù)提供了最大寬度,文本會(huì)進(jìn)行縮放以適應(yīng)最大寬度。

(14)Context.strokeText(text,x,y[,width])。此函數(shù)在給定的(x,y)位置繪制空心文本。如果提供了表示最大值的第四個(gè)參數(shù),文本將會(huì)縮放適應(yīng)寬度。

4 程序?qū)崿F(xiàn)

本程序趨勢(shì)曲線控制區(qū)由一個(gè)div元素構(gòu)成,div元素子div元素和一個(gè)table元素。子div元素包含輸入框,按鈕等元素,用于輸入開(kāi)始結(jié)束時(shí)間,查詢按鈕等。table中列出了曲線的名稱,顏色,當(dāng)前值,描述,限值等。但添加曲線時(shí),通過(guò)jQuery的方法append,向表table中動(dòng)態(tài)添加的行元素。

趨勢(shì)顯示區(qū)由canvas元素構(gòu)成,也由上面介紹的方法繪制。

軟件效果如圖3完成圖所示。

5 結(jié)語(yǔ)

本文介紹了一種使用canvas和jQuery完成網(wǎng)頁(yè)繪制曲線的方式,限于篇幅沒(méi)有粘貼代碼,不過(guò)文中介紹了關(guān)鍵方法的用法說(shuō)明,讀者可以參考。

參考文獻(xiàn)

[1] (美)弗里曼(Freeman,A.)著;謝廷晟,牛化成,劉美英譯.HTML5權(quán)威指南[M].北京:人民郵電出版社,2014.1:5-6.

主站蜘蛛池模板: 日本a∨在线观看| 在线观看免费黄色网址| 久久国产高潮流白浆免费观看| 国产福利在线免费观看| 99re在线免费视频| 青青国产成人免费精品视频| 久久人妻系列无码一区| 91无码人妻精品一区二区蜜桃 | 国产色婷婷| 一区二区影院| 色综合中文综合网| 亚洲精品国偷自产在线91正片| 国产欧美日韩va另类在线播放| 中文精品久久久久国产网址 | 日韩高清中文字幕| 蜜桃视频一区| 欧美成人国产| 国产乱码精品一区二区三区中文 | 综合色在线| 亚洲天堂视频网站| 国产精品香蕉在线观看不卡| 国产综合色在线视频播放线视 | 亚洲无码视频图片| 欧亚日韩Av| 91 九色视频丝袜| 日本91视频| 无码粉嫩虎白一线天在线观看| 青青国产成人免费精品视频| 国产成人精品男人的天堂下载| 亚洲视频欧美不卡| 欧美亚洲网| 国产精品xxx| 免费观看无遮挡www的小视频| av一区二区人妻无码| 成人在线综合| 久久综合伊人77777| 国产91成人| 99热国产这里只有精品无卡顿"| 亚洲中文字幕精品| 欧美成人A视频| 日韩精品无码不卡无码| 无码精油按摩潮喷在线播放| 精品久久香蕉国产线看观看gif| 漂亮人妻被中出中文字幕久久 | 亚洲一区精品视频在线| 国产伦精品一区二区三区视频优播| 午夜一级做a爰片久久毛片| 亚洲综合片| 黄片在线永久| 亚洲性视频网站| 中文字幕伦视频| 狠狠操夜夜爽| 国产美女人喷水在线观看| 精品一区二区三区水蜜桃| 久久精品视频亚洲| 美女无遮挡免费视频网站| 91福利免费| 99热这里只有精品免费国产| 97在线观看视频免费| 日本少妇又色又爽又高潮| 久久久久久高潮白浆| 国产中文在线亚洲精品官网| 丁香亚洲综合五月天婷婷| 自偷自拍三级全三级视频| 天天综合色网| 国产一级妓女av网站| 99热这里只有精品5| 91精品国产91欠久久久久| 国产亚洲视频播放9000| 日本精品αv中文字幕| 国产精品爽爽va在线无码观看 | 黑色丝袜高跟国产在线91| 免费观看男人免费桶女人视频| 看国产毛片| www.99在线观看| 91亚洲免费视频| 精品国产成人高清在线| 999国内精品久久免费视频| 狠狠ⅴ日韩v欧美v天堂| 欧美专区日韩专区| 午夜a视频| 精品一区二区无码av|