<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > XMLHttP對象在嵌入式Web實(shí)時(shí)系統中的應用

XMLHttP對象在嵌入式Web實(shí)時(shí)系統中的應用

作者: 時(shí)間:2011-11-15 來(lái)源:網(wǎng)絡(luò ) 收藏

由于頁(yè)中可能有多個(gè)不同按鈕要發(fā)送不同的控制命令,為簡(jiǎn)化程序設計且便于管理,可將每一按鈕調用該函數創(chuàng )建的xMLHttp統一保存到全局數組ObjArray中。對象數組ObjArray由頁(yè)中的Javascript腳本定義,即:
script language=“Javascript”>
var ObjArray=new Array;……
(2)mReadyCallBack()
它是Send_Control_CMD函數所創(chuàng )建的保存于對象數組ObjArray中的每個(gè)XMLHttp對象的異步回調函數,通過(guò)該函數可統一異步處理服務(wù)器回應數據。函數具體實(shí)現如下:
c.jpg
當ObjArray中的任意一個(gè)XMLHttp對象的就緒狀態(tài)變化時(shí),將觸發(fā)對mReadyCallBack函數的異步調用,該函數將通過(guò)for循環(huán)掃描對象數組ObjArray,對HTTP服務(wù)器當前回應的對象進(jìn)行處理。通過(guò)XMLHttp對象的responseText屬性可獲取服務(wù)器回應信息,通過(guò)容器的inner HTML屬性可將回應信息顯示到Web頁(yè)中。在處理完當前XMLHttp對象以后,mReadyCallBack最終將用delete釋放該對象所占用的資源。如果調用Send_control_CMD函數時(shí)第2個(gè)參數為空,則表示發(fā)出控制命令后不需要處理服務(wù)器回應文本信息,回調函數僅僅需要釋放該對象所占用的資源。
1.1.3 實(shí)現客戶(hù)端監測功能的函數
(1)RealTime_Monitoring()
該函數專(zhuān)門(mén)用于監測動(dòng)態(tài)數據,它由Web頁(yè)面加載事件onLoad觸發(fā)調用,通過(guò)所創(chuàng )建的xMLHttp對象向服務(wù)器請求動(dòng)態(tài)文件Status.cgi,以獲取監測數據。
d.jpg
其中xmlhttp定義為全局變量。
(2)aReadyCallBack()
該函數是監測外設數據函數RealTime_Monitoring所創(chuàng )建的XMLHttp對象的專(zhuān)用回調函數,它在處理HTTP服務(wù)器回應時(shí)將返回的動(dòng)態(tài)監測數據顯示在ID為“txtStatus”的Web容器中,譬如span id=“txtStatus”>…/span>,所返回的內容將替換其中的“…”。函數具體實(shí)現如下:
e.jpg
f.jpg
回調函數aReadyCallBack與回調函數mReadyCallBack的差別在于:它釋放已經(jīng)處理回應的XMLHttp對象(置為null)以后,接著(zhù)執行了一項重要工作,即調用實(shí)時(shí)監測函數RealTime_Monitoring()。通過(guò)創(chuàng )建新的XMLhttp對象,將動(dòng)態(tài)請求與顯示刷新“接力”進(jìn)行下去,從而使實(shí)時(shí)監測無(wú)限延續。
顯然,通過(guò)XMLHttp對象所實(shí)現的實(shí)時(shí)監測,其效果遠遠優(yōu)于傳統的Web請求與響應操作模式下所使用的通過(guò)在網(wǎng)頁(yè)頭部加入meta http-equiv=“refresh”content=“定時(shí)長(cháng)度”>,或者使用Javascript的setTimeout函數設置超時(shí)值,使客戶(hù)端自動(dòng)按固定時(shí)間間隔請求服務(wù)器刷新顯示動(dòng)態(tài)信息的方法。
1.2 客戶(hù)端Web與HTTP服務(wù)器的交互操作
有了上述以XMLHttp對象為中心的函數定義,完成客戶(hù)端Web與HTTP服務(wù)器之間的交互操作就很容易了,例如:
①通過(guò)Web頁(yè)按鈕啟動(dòng)電機.可有input type=“button”onClick=“Send_Ctrl_CMD(’0?1=MOTOR’,’)”value=“運行”>。按鈕事件觸發(fā)對Send_Control_CMD的調用,它通過(guò)XMLHttp對象在“后臺”發(fā)送命令串“O?1=MOTOR”,提交給HTTP服務(wù)器處理,控制電機啟動(dòng),實(shí)現遠程控制功能。
②實(shí)時(shí)監測嵌入式外設狀態(tài),可有body onLoad=“ReaITime Monitoring();”>。Web頁(yè)面加載事件onLoad觸發(fā)對RealTime_Monit oring的函數調用,它同樣也通過(guò)XMLHttp對象訪(fǎng)問(wèn)嵌入式系統HTTP服務(wù)器,不同的是它所請求的是動(dòng)態(tài)文件status.cgi?,F假設所訪(fǎng)問(wèn)的動(dòng)態(tài)文件主要內容如下:
td width=“150”>%02/td>
td width=“200”>LED1:%00 LED2:%01/td>
td width=“168”>%10/td>
嵌入式系統HTTP服務(wù)器程序將從MPFS文件系統讀取該動(dòng)態(tài)文件并將其發(fā)往客戶(hù)端。在發(fā)送過(guò)程中,HTTP服務(wù)器將對所遇到的形如“%xx”的變量碼進(jìn)行解析處理。例如“%02”被定義為測試電路中AN0通道的A/D值,“%00”“%01”被定義為兩個(gè)外接LED的開(kāi)關(guān)狀態(tài),“%10”被定義為所控制的直流電機的啟/停狀態(tài)。經(jīng)過(guò)HTTP服務(wù)器處理后的變量值將被系統當前實(shí)際的外設狀態(tài)值所替換并返回到客戶(hù)端。
由于RealTime_Monitoring函數與aReadyCallBack函數配合實(shí)現了XMLHttp對象的創(chuàng )建、請求、異步響應、釋放,再創(chuàng )建、再請求、再異步響應、再釋放等,從而借助XMLHttp對象在“后臺”實(shí)現了理想的實(shí)時(shí)監測功能。由于監測結果實(shí)時(shí)刷新顯示在Web中的特定容器位置,不會(huì )導致全頁(yè)刷新問(wèn)題,這也為用戶(hù)操作帶來(lái)了良好體驗。
解決了客戶(hù)端通過(guò)XMLHttp塒象在“后臺”與HTTP服務(wù)器進(jìn)行交互、發(fā)送控制命令及異步處理回應、實(shí)現實(shí)時(shí)監測功能的問(wèn)題以后,接著(zhù)要解決的是HTTP服務(wù)器端如何處理客戶(hù)端XMLHttp對象所發(fā)送的控制命令,以及如何處理并返回客戶(hù)端XMLHttp對象所請求的動(dòng)態(tài)文件。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>