<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ò ) 收藏

摘要:就Ajax技術(shù)中的XMLHttp在基于遠程控制與監測中的開(kāi)發(fā)進(jìn)行了研究,并基于Microchip TCP/IP協(xié)議棧給出了具體的實(shí)現方法,有效地解決了客戶(hù)端HTTP服務(wù)器的交互問(wèn)題。
關(guān)鍵詞:;TCP/IP;開(kāi)發(fā);Ajax;XMLHttp;Javascript

引言
傳統的Web在交互操作過(guò)程中頻繁出現全頁(yè)刷新的問(wèn)題無(wú)法避免,即使當前頁(yè)面中僅有局部信息是需要動(dòng)態(tài)刷新顯示的。這不僅影響到界面效果,在監測過(guò)程中還會(huì )明顯影響服務(wù)器的響應速度。
Ajax技術(shù)的出現為解決客戶(hù)端Web與嵌入式HTTP服務(wù)器之間的交互問(wèn)題提供了重要途徑。Ajax是異步Javascript與XML的簡(jiǎn)稱(chēng),這一概念由Jesse James Garrett提出,它是一組與Web開(kāi)發(fā)相關(guān)的技術(shù),包括基于HTML/XHTML與CSS標準的頁(yè)面表示、基于DOM的動(dòng)態(tài)顯示和交互,以及基于XMLHttpRequest與服務(wù)器之間的異步通信。所有上述技術(shù)通過(guò)Javascript綁定在一起。
嵌入式以太網(wǎng)開(kāi)發(fā)者可以嘗試通過(guò)Ajax的核心XMLHttp在“后臺”與嵌入式HTTP服務(wù)器交瓦,對服務(wù)器發(fā)起遠程控制,讀取服務(wù)器動(dòng)態(tài)返回的監測信息并刷新顯示在客戶(hù)端Web界面中的特定位置,且所有操作均不會(huì )導致當前Web界面被全頁(yè)刷新。
本文以Microchip公司的TCP/IP協(xié)議棧為基礎,討論XMLHttp在嵌入式Web實(shí)時(shí)系統中的具體方法。所選用的測試電路以PIC18F4 52單片機與以太網(wǎng)接口芯片RTL8019AS為核心,嵌入式HTTP服務(wù)器所有Web相關(guān)文件保存在系統外部EEPROM存儲器中。

1 XMLHttp在客戶(hù)端Web中的應用
XMLHttp是Ajax技術(shù)的核心,由微軟公司在IE5.0瀏覽器中率先推出,后被命名為XMLHttpRequest。
1.1 客戶(hù)端Javascript函數
1.1.1 創(chuàng )建XMLHttp對象的通用函數
客戶(hù)端與嵌入式系統HTTP服務(wù)器的所有交互都將基于在客戶(hù)端所創(chuàng )建的XMLHttp對象。該函數在IE中創(chuàng )建XMLHttp對象的語(yǔ)句為:
a.jpg
創(chuàng )建XMLHttp對象后最重要的操作是設置onreaclystatechange屬性(非IE中為onload),為其綁定異步回調函數。當XMLHttp對象狀態(tài)變化時(shí),所指定的回調函數將自動(dòng)處理服務(wù)器回應數據。
1.1.2 客戶(hù)端發(fā)送控制命令的函數
(1)Send_Control_CMD(URL,Html_id)
該函數可由客戶(hù)端Web中的控制命令按鈕點(diǎn)擊事件onClick觸發(fā)調用,它調用CreateXMLHttpObj創(chuàng )建XMLHttp對象,設置回調函數,然后以GET方法對HTTP服務(wù)器發(fā)起請求。函數的第一個(gè)參數URL可以是控制命令串,也可以是CGI、HTML及其他各種Web文件名。如果要求在客戶(hù)端Web中顯示HTTP服務(wù)器返回信息,則需要設置第二個(gè)參數Html_id。例如,在發(fā)送控制命令點(diǎn)亮系統中某個(gè)指示燈后,要求將服務(wù)器返回的該指示燈的當前狀態(tài)顯示在客戶(hù)端。所設置的參數Html_id是客戶(hù)端Web頁(yè)中的某個(gè)容器的ID,返回信息將顯示到該容器中。如果不需要服務(wù)器回應文本信息,或對回應信息不予處理,可將該參數設為空。函數具體實(shí)現如下:
b.jpg
Send_Control_CMD在每次被涮用時(shí)首先創(chuàng )建一個(gè)通用對象Obj,然后創(chuàng )建XMLHttp對象,并將其保存在自定義的Obj.xmlhttpobj屬性中,隨后調用XMLHttp對象的open方法與send方法,調用格式為:
oXMLHttpRequest.open(bstrMethod,bstrUrl,varAsync,
bstrUser,bstrPassword);
oXMLHttpRequest.send(varBody);
其中open方法的bstrMethod參數為HTTP請求的方法,例如所選擇的“GET”方法,bstrUrl參數為請求的URL地址,在本文討論的嵌入式Web實(shí)時(shí)系統中,它用來(lái)表示控制命令串,譬如用來(lái)啟動(dòng)外部直流電機的控制命令串“0?1=MOTOR”,varAsync參數用于指定當前請求是否為異步方式,默認為true,最后兩個(gè)參數提供帳號密碼,用于服務(wù)器驗證。通過(guò)open方法初始化XMLHttp對象以后,要用send方法發(fā)送請求到HTTP服務(wù)器并等待回應。由于XMLHttp對象被設為異步模式,send調用將不會(huì )被阻塞,XMLHttp對象的回調函數mReadyCallBack將在HTTP服務(wù)器回應時(shí)異步執行。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>