Ajax 技術(shù)在WebGIS 系統(tǒng)中的性能優(yōu)化研究
出處:電子愛好者博客 發(fā)布于:2013-08-01 11:21:19
摘要:為了提高WebGIS系統(tǒng)地圖圖像數(shù)據(jù)響應(yīng)效率,將Ajax技術(shù)運(yùn)用于WebGIS系統(tǒng)開發(fā)中,重點(diǎn)分析了基于Ajax的數(shù)據(jù)交互及方法實(shí)現(xiàn),Ajax的動(dòng)態(tài)數(shù)據(jù)請(qǐng)求在很大程度上解決了WebGIS數(shù)據(jù)顯示不流暢的問題,具有廣泛的應(yīng)用價(jià)值。
0 引言
WebGIS在網(wǎng)絡(luò)和地理信息系統(tǒng)技術(shù)的整合中應(yīng)運(yùn)而生。它改變舊方式中空間數(shù)據(jù)的采集、傳輸、共享和發(fā)展,成為地理信息系統(tǒng)一個(gè)重要的發(fā)展方向,通過超鏈接,WebGIS可使用戶在Internet上操作GIS地圖和數(shù)據(jù),但是WebGIS的地圖數(shù)據(jù)量較大,在Web上執(zhí)行GIS常遇到刷新慢,頁(yè)面緩沖時(shí)間較長(zhǎng)的情況。
針對(duì)WebGIS低響應(yīng)速度和性能差的缺點(diǎn),在開發(fā)WebGIS平臺(tái)采用動(dòng)態(tài)刷新技術(shù),運(yùn)用Ajax引擎,它可以用來(lái)縮短客戶端和服務(wù)器端之間的響應(yīng)時(shí)間,以減少傳輸網(wǎng)絡(luò)中的數(shù)據(jù)量,并增加豐富的多媒體效果。實(shí)行字符同步處理瀏覽器的WebGIS元素,異步消息發(fā)送到服務(wù)器,接收數(shù)據(jù)只更新部分內(nèi)容,不需要更新整個(gè)頁(yè)面。這個(gè)新機(jī)制在很大程度上提高了WebGIS 的響應(yīng)效率,增強(qiáng)了用戶體驗(yàn)。目前,Ajax技術(shù)以其優(yōu)越性,在大數(shù)據(jù)量的Web 處理中,已成為主流技術(shù)的數(shù)據(jù)傳輸技術(shù)。
1 相關(guān)技術(shù)分析
1.1 Ajax技術(shù)
Ajax 是在JavaScript 中調(diào)用一個(gè)JavaScript 類XMLHttpRequest,這個(gè)類可以與Web服務(wù)器使用HTTP協(xié)議進(jìn)行交互,程序不通過瀏覽器發(fā)出請(qǐng)求,而是用這個(gè)特殊的JavaScript對(duì)象發(fā)送請(qǐng)求,再由這個(gè)JavaScript對(duì)象接收響應(yīng),并將響應(yīng)結(jié)果用DOM 編程方式掛到原來(lái)的網(wǎng)頁(yè)上。
傳統(tǒng)Web 界面請(qǐng)求由瀏覽器發(fā)出請(qǐng)求,服務(wù)器端進(jìn)行處理,然后將響應(yīng)發(fā)送至客戶端。而基于Ajax 的Web 請(qǐng)求響應(yīng)采用XMLHttpRequest 發(fā)送,服務(wù)器的處理結(jié)果也由該對(duì)象來(lái)接收,在相同時(shí)間內(nèi),數(shù)據(jù)請(qǐng)求更頻繁,數(shù)據(jù)交互次數(shù)更多。這正是Ajax 技術(shù)的優(yōu)勢(shì)所在。
Ajax并不是一種創(chuàng)新的技術(shù),而是多種常用技術(shù)以新的方式的組合,運(yùn)用Ajax技術(shù)做Web開發(fā),關(guān)鍵的是必須掌握Ajax數(shù)據(jù)交互流程及XMLHttpRequest類的屬性及方法。
1.2 WebGIS系統(tǒng)
WebGIS系統(tǒng)結(jié)構(gòu)主要有表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)層三層。
數(shù)據(jù)層主要是存儲(chǔ)地圖數(shù)據(jù)的空間信息數(shù)據(jù)庫(kù),以及存儲(chǔ)擴(kuò)展信息的其他數(shù)據(jù)庫(kù),比如地名描述信息等;業(yè)務(wù)邏輯層主要有ArcMS和網(wǎng)頁(yè)JSP等,地圖服務(wù)軟件及負(fù)責(zé)頁(yè)面顯示的JSP頁(yè)面;表示層由WebServer,瀏覽器及ArcGIS Desktop構(gòu)成,這層主要是將地圖圖像直觀的顯示給用戶,提供用戶操作的接口。
WebGIS的開發(fā),主要掌握三部分內(nèi)容。掌握氣泡顯示,路線描紅,地圖無(wú)縫拼接的JavaScript代碼。氣泡顯示是地圖具體位置的直觀顯示,路線描紅是對(duì)地圖路線的直觀標(biāo)識(shí),地圖無(wú)縫拼接將不同塊的地圖數(shù)據(jù)連接起來(lái),這都是地圖界面基本的功能,也是重要的一部分。坐標(biāo)轉(zhuǎn)換,截圖命名及特殊點(diǎn)坐標(biāo)轉(zhuǎn)換,這是地圖的擴(kuò)展功能,用于對(duì)地圖的操作,比如根據(jù)地圖坐標(biāo)點(diǎn)計(jì)算空間距離等。網(wǎng)站程序部分,讀取數(shù)據(jù)庫(kù),動(dòng)態(tài)生成XML 文件和JavaScript 腳本,這是WebGIS 開發(fā)必不可少的內(nèi)容,也是所有Web開發(fā)的公用模塊。
2 Ajax 對(duì)WebGIS 系統(tǒng)性能提高的方法簡(jiǎn)述
分布式系統(tǒng)提高了WebGIS的響應(yīng)效率,這是從數(shù)據(jù)資源的訪問方式方面做的優(yōu)化研究,而運(yùn)用Ajax 技術(shù)則是對(duì)Web端與服務(wù)器端數(shù)據(jù)交互的優(yōu)化。兩者的共同點(diǎn)是提高了WebGIS 的響應(yīng)效率,增強(qiáng)了用戶體驗(yàn)。
2.1 基于Ajax的WebGIS數(shù)據(jù)交互
Ajax 的交互作用由Ajax Engine 來(lái)完成,它是瀏覽器端與服務(wù)器端的數(shù)據(jù)交互橋梁,瀏覽器端的數(shù)據(jù)請(qǐng)求由Ajax Engine 發(fā)給服務(wù)器端,服務(wù)器端的數(shù)據(jù)響應(yīng)也由它發(fā)給瀏覽器端[4],具體數(shù)據(jù)交互圖如圖1所示。
在用戶端,主要由Ajax Engine、界面邏輯、數(shù)據(jù)緩存、用戶界面、DOM五部分構(gòu)成。其中,用戶邏輯,界面邏輯,用戶界面均只與Ajax Engine通信,而不直接與服務(wù)器通信。服務(wù)器端主要有Web 頁(yè)面、應(yīng)用邏輯及數(shù)據(jù)庫(kù),三者實(shí)現(xiàn)服務(wù)器的正常工作,與用戶端數(shù)據(jù)通信直接交付Ajax Engine來(lái)完成。
2.2 Ajax在WebGIS中的方法實(shí)現(xiàn)
用Ajax 創(chuàng)建WebGIS 工程,概況來(lái)講,只需要五步:新建html或者JSP頁(yè)面,作為WebGIS除地圖數(shù)據(jù)圖像外的頁(yè)面數(shù)據(jù)顯示;在頁(yè)面中寫出創(chuàng)建XMLHttpRe-quest 對(duì)象的方法;寫出事件響應(yīng)方法,用上面創(chuàng)建的對(duì)象發(fā)出異步的Ajax 請(qǐng)求;創(chuàng)建Servlet 響應(yīng)請(qǐng)求;在頁(yè)面完成回調(diào)方法,處理服務(wù)器端響應(yīng),改變頁(yè)面效果。
其中,創(chuàng)建XMLHttpRequest 對(duì)象的方法是比較重要的一步,是客戶端和服務(wù)器異步通信的關(guān)鍵,XML-HttpRequest基本方法主要有:
abort:取消當(dāng)前的HTTP 請(qǐng)求。
getResponseHeader:獲得響應(yīng)內(nèi)容的HTTP頭信息。
open:初始化一個(gè)HTTP 請(qǐng)求,指定請(qǐng)求方法(Get/Post)、URL、身份驗(yàn)證信息等。
send:發(fā)送一個(gè)HTTP 請(qǐng)求到服務(wù)器。
setRequestHeader:設(shè)置HTTP請(qǐng)求的頭信息。
地圖數(shù)據(jù)的傳輸原則是次登陸傳輸少量地圖數(shù)據(jù),但需要實(shí)現(xiàn)全景顯示,然后根據(jù)用戶的基本操作,運(yùn)用Ajax 技術(shù)動(dòng)態(tài)地傳輸余下地圖數(shù)據(jù),同時(shí)也要卸載不必要的地圖數(shù)據(jù)。地圖數(shù)據(jù)每次以塊傳送,頁(yè)面地圖數(shù)據(jù)的加載以圖形塊的方式逐次顯示。具體流程圖如圖2所示。
Web 頁(yè)面全景顯示,是給用戶一張地圖的直觀顯示,但并不代表包含所有的地圖數(shù)據(jù),根據(jù)用戶在瀏覽器上點(diǎn)擊的地圖位置,決定加載哪一部分地圖數(shù)據(jù)量,同時(shí)也要考慮用戶端緩存的大小,當(dāng)緩存不夠時(shí),需釋放與當(dāng)前請(qǐng)求的地圖塊不相關(guān)的其他地圖數(shù)據(jù)。對(duì)某一塊圖像而言,用戶的基本操作主要有放大、縮小和平移,其中只有放大不需要Ajax發(fā)送請(qǐng)求加載地圖數(shù)據(jù),其他兩種操作均需要。
2.3 應(yīng)用舉例
Ajax技術(shù)提高了WebGIS系統(tǒng)性能,用戶可以更流暢地通過WebGIS 查看地圖信息,基于這種方式的應(yīng)用,逐漸被人們所接受,尤其是在智能交通及物流行業(yè),伴隨著智能物流系統(tǒng)的提出,越來(lái)越多的車輛裝載了含有WebGIS 的車載系統(tǒng),用于查看地圖路線,同時(shí)給服務(wù)器發(fā)送位置信息,服務(wù)器隨時(shí)可以跟蹤到當(dāng)前車輛的具體位置,整個(gè)物流行業(yè)提供朝著智能便捷化發(fā)展。
智能交通行業(yè),應(yīng)用得更加廣泛,高德地圖、四維圖新、凱立德導(dǎo)航等眾多企業(yè)均開發(fā)了WebGIS導(dǎo)航系統(tǒng),將導(dǎo)航系統(tǒng)置于車載終端,具有廣闊的市場(chǎng)前景,有些汽車制造商已經(jīng)將WebGIS 導(dǎo)航系統(tǒng)汽車生產(chǎn)作為標(biāo)準(zhǔn)配置,方便用戶智能導(dǎo)航,WebGIS在智能交通行業(yè)的市場(chǎng)份額逐步提高。
3 結(jié)語(yǔ)
本文在分析了Ajax 技術(shù)的優(yōu)點(diǎn)和WebGIS 系統(tǒng)特點(diǎn)之后,提出了一種基于AJAX 的WebGIS 數(shù)據(jù)交互實(shí)現(xiàn)方法,實(shí)驗(yàn)證明,該方法在很大程度上提高了WebGIS數(shù)據(jù)請(qǐng)求響應(yīng)效率,增強(qiáng)了用戶體驗(yàn)感。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- 幾種流行無(wú)線通信方式及其特點(diǎn)2025/9/2 17:14:12
- 解密射頻線纜彎曲衰減變化,掌握有效應(yīng)對(duì)策略2025/8/29 16:22:47
- LoRa1120 模塊與 ESP32 點(diǎn)對(duì)點(diǎn) LoRa 通信實(shí)踐全流程2025/8/29 16:16:44
- 交交型變頻器和交直交型變頻器的區(qū)別
- 800G DR8 與其他 800G 光模塊的對(duì)比分析
- UPS電源中電流電壓傳感器的應(yīng)用
- 51單片機(jī)電平特性是什么
- AC/DC 與 DC/DC 轉(zhuǎn)換器的工作原理與應(yīng)用
- PCB板層設(shè)計(jì)與電磁兼容性的關(guān)系解析
- 接觸器式繼電器怎么區(qū)分 如何測(cè)量好壞
- 車規(guī)級(jí)MCU介紹及應(yīng)用場(chǎng)景
- 電容選型時(shí)如何選擇產(chǎn)品的電壓
- 線性穩(wěn)壓電源與開關(guān)穩(wěn)壓電源:原理、特性及應(yīng)用