XMLHTTP組件相關(guān)技術(shù)資料_AJAX教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:怎樣用DHTML與XML制作Ajax幻燈片
      Ajax 幻燈片放映 個人圖像管理應(yīng)用程序(如 Macintosh 上的 Apple iPhoto)使得幻燈片瀏覽廣為人知。在幻燈片瀏覽中,圖像按照時間順序先后淡入淡出。此外,圖片還通過所謂的 “Ken Burns Effect” 進行移動和縮放。 在該例中,我讓瀏覽器從服務(wù)器上下載一個

      一、數(shù)據(jù)庫遠程管理技術(shù)

      基于互聯(lián)網(wǎng)的廣域網(wǎng)現(xiàn)代應(yīng)用中的一個重要環(huán)節(jié)是數(shù)據(jù)庫遠程監(jiān)控。首先簡單回顧一下互聯(lián)網(wǎng)上的數(shù)據(jù)庫遠程管理技術(shù)的發(fā)展過程和方式:

      早期通過編寫CGI-BIN程序模塊進行數(shù)據(jù)庫遠程管理。但CGI-BIN的運行速度慢,維護很不方便,現(xiàn)在已經(jīng)基本被棄用。

      這幾年使用組件對象模型(Component Object Model, COM)的應(yīng)用非常多,效果也很好。但如果使用的是第三方服務(wù)器(筆者的網(wǎng)站就是建立在第三方的虛擬主機上),服務(wù)器方往往因為保密或其它商業(yè)原因不允許用戶注冊自己的組件。

      近年來由微軟公司推出的.NET平臺和SUN公司的J2EE平臺都是非常高檔的數(shù)據(jù)庫遠程管理與服務(wù)平臺。都能提供優(yōu)質(zhì)的多層(n-Tier)應(yīng)用服務(wù)。 其中,.NET的簡單對象訪問協(xié)議(Simple Object Access Protocol, SOAP)使用超文本傳輸協(xié)議(Hypertext Transfer Protocol, HTTP)和擴展標(biāo)記語言(Extensible Markup Language, XML)技術(shù)實現(xiàn)跨系統(tǒng)(例如Windows - Linux)的通訊服務(wù)方式已經(jīng)廣為開發(fā)商接受和使用。許多大型應(yīng)用,例如企業(yè)資源計劃(Enterprise resource planning, ERP)等都建立在這樣的大型平臺之上。 但對于中小型應(yīng)用,比如一個網(wǎng)站的建設(shè)和維護,這種大型應(yīng)用平臺就顯得有些尾大不掉,開銷也過于龐大。

      曾經(jīng)在互聯(lián)網(wǎng)技術(shù)和Java技術(shù)方面一度落后的微軟公司在XML應(yīng)用開發(fā)則走在了前頭。她的XML解析器(MSXML)中的XMLHTTP協(xié)議是一個非常方便實用的客戶/服務(wù)通訊管道。綜合運用XMLHTTP以及ActiveX數(shù)據(jù)對象(ActiveX Data Objects, ADO/ADOX)可以簡單方便地實現(xiàn)數(shù)據(jù)庫遠程管理。

      二、數(shù)據(jù)庫遠程管理體系

      數(shù)據(jù)庫遠程管理的任務(wù)流程是:

      1、客戶端向服務(wù)端發(fā)出數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)的查詢或修改指令。

      2、服務(wù)端接受并執(zhí)行有關(guān)指令并向客戶端返回結(jié)果。

      3、客戶端接受并顯示服務(wù)端返回的指令執(zhí)行結(jié)果。

      實現(xiàn)數(shù)據(jù)庫遠程管理的二個主要關(guān)鍵環(huán)節(jié)是:

      1、客戶端與服務(wù)端之間的指令上傳和結(jié)果下傳的數(shù)據(jù)通道,由XMLHTTP協(xié)議實現(xiàn)。

      2、服務(wù)端前沿與數(shù)據(jù)庫之間的指令傳送和結(jié)果返回,由起著中間層作用的ADO/ADOX接口完成。

      三、XMLHTTP的使用

      顧名思義,XMLHTTP是個傳送XML格式數(shù)據(jù)的超文本傳輸協(xié)議。

      實際上,XMLHTTP的數(shù)據(jù)傳輸過程更為靈活一些:

      它上傳的指令可以是XML格式數(shù)據(jù),也可以是字符串,流,或者一個無符號整數(shù)數(shù)組。還可以是URL的參數(shù)。

      它下達的結(jié)果可以是XML格式數(shù)據(jù),也可以是字符串,流,或者一個無符號整數(shù)數(shù)組。

      詳情可參閱文末鏈接。

      客戶端調(diào)用XMLHTTP的過程很簡單,只有5個步驟:

      1、創(chuàng)建XMLHTTP對象

      2、打開與服務(wù)端的連接,同時定義指令發(fā)送方式,服務(wù)網(wǎng)頁(URL)和請求權(quán)限等。

      客戶端通過Open命令打開與服務(wù)端的服務(wù)網(wǎng)頁的連接。與普通HTTP指令傳送一樣,可以用"GET"方法或"POST"方法指向服務(wù)端的服務(wù)網(wǎng)頁。

      3、發(fā)送指令。

      4、等待并接收服務(wù)端返回的處理結(jié)果。

      5、釋放XMLHTTP對象

      XMLHTTP方法

      Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword

      bstrMethod:數(shù)據(jù)傳送方式,即GET或POST。

      bstrUrl:服務(wù)網(wǎng)頁的URL。

      varAsync:是否同步執(zhí)行。缺省為True,即同步執(zhí)行,但只能在DOM中實施同步執(zhí)行。應(yīng)用中一般將其置為False,即異步執(zhí)行。

      bstrUser:用戶名,可省略。

      bstrPassword:用戶口令,可省略。

      Send varBody

      varBody:指令集?梢允荴ML格式數(shù)據(jù),也可以是字符串,流,或者一個無符號整數(shù)數(shù)組。也可以省略,讓指令通過Open方法的URL參數(shù)代入。

      setRequestHeader bstrHeader, bstrValue

      bstrHeader:HTTP 頭(header)

      bstrValue:HTTP 頭(header)的值

      如果Open方法定義為POST,可以定義表單方式上傳xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

      XMLHTTP屬性

      onreadystatechange:在同步執(zhí)行方式下獲得返回結(jié)果的事件句柄。只能在DOM中調(diào)用。

      responseBody:結(jié)果返回為無符號整數(shù)數(shù)組。

      responseStream:結(jié)果返回為IStream流。

      responseText :結(jié)果返回為字符串。

      responseXML:結(jié)果返回為XML格式數(shù)據(jù)。

      下面是本文附件源程序中的一個應(yīng)用示例:

      Function GetResult(urlStr)

      Dim xmlHttp

      Dim retStr

      Set xmlHttp = CreateObject("Msxml2.XMLHTTP") '創(chuàng)建對象

      On Error Resume Next '出錯處理

      xmlHttp.Open "POST", urlStr, False '用POST方式打開連接,異步執(zhí)行。

      xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" '上傳表單

      xmlHttp.Send '發(fā)送指令

      If Err.Number = 0 Then '如果連接正確

      retStr = xmlHttp.responseText '等待并獲得服務(wù)端返回的結(jié)果字符串

      Else

      retStr = "Url not found" '否則返回出錯信息

      End If

      Set xmlHttp = nothing '釋放對象

      GetResult = retStr '返回結(jié)果

      End Function

      GetResult()函數(shù)帶入一個服務(wù)網(wǎng)頁的URL參數(shù),把上傳的指令安放在URL后面的參數(shù)上,如:

      urlStr = "server.asp?cmd=" & cmd & "&db=" & db & "table=" & table

      cmd:執(zhí)行方式,例如查詢,修改,刪除等等。

      db:服務(wù)端數(shù)據(jù)庫名

      table:服務(wù)端表名

      然后提交指令,等待并接收返回的處理結(jié)果。結(jié)果以字符串方式返回。最后由函數(shù)調(diào)用者處理并顯示結(jié)果。

       

      分享:怎樣處理書簽和后退按鈕
      本文將展示一個開源JavaScript庫,該腳本庫給AJAX應(yīng)用程序帶來了書簽和后退按鈕支持。在學(xué)習(xí)完這個教程后,開發(fā)人員將能夠獲得對一個AJAX問題的解決方案(甚至連Google Maps和Gmail現(xiàn)在都不提供該解決方案):一個強大的、可用的書簽和后退前進功能,其操作行

      來源:模板無憂//所屬分類:AJAX教程/更新時間:2010-05-03
      相關(guān)AJAX教程