新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > XMLHttP對象在嵌入式Web實時系統中的應用

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

        作者: 時間:2011-11-15 來源:網絡 收藏

        摘要:就Ajax技術中的XMLHttp在基于遠程控制與監測中的開發進行了研究,并基于Microchip TCP/IP協議棧給出了具體的實現方法,有效地解決了客戶端HTTP服務器的交互問題。
        關鍵詞:;TCP/IP;開發;Ajax;XMLHttp;Javascript

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

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

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

        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 张家川| 疏勒县| 雅安市| 习水县| 醴陵市| 青州市| 洛南县| 枝江市| 藁城市| 图们市| 上杭县| 加查县| 吴旗县| 祁连县| 岳普湖县| 灵寿县| 普洱| 阳东县| 京山县| 横峰县| 阿拉善右旗| 新密市| 获嘉县| 灵丘县| 都江堰市| 益阳市| 广平县| 高要市| 伊金霍洛旗| 正定县| 南宁市| 天津市| 东源县| 外汇| 静安区| 资兴市| 雅江县| 康保县| 新绛县| 富阳市| 杭州市|