国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Ajax核心:XMLHTTP組件相關(guān)技術(shù)資料

2019-11-18 16:41:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Ajax核心:xmlHTTP組件相關(guān)技術(shù)資料

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

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

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

  這幾年使用組件對(duì)象模型(Component Object Model, COM)的應(yīng)用非常多,效果也很好。但如果使用的是第三方服務(wù)器(筆者的網(wǎng)站就是建立在第三方的虛擬主機(jī)上),服務(wù)器方往往因?yàn)楸C芑蚱渌虡I(yè)原因不允許用戶(hù)注冊(cè)自己的組件。

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

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

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

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

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

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

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

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

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

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

  三、XMLHTTP的使用

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

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

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

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

  詳情可參閱文末鏈接。

  客戶(hù)端調(diào)用XMLHTTP的過(guò)程很簡(jiǎn)單,只有5個(gè)步驟:

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

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

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

  3、發(fā)送指令。

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

  5、釋放XMLHTTP對(duì)象

  XMLHTTP方法

  Open bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassWord

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

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

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

  bstrUser:用戶(hù)名,可省略。

  bstrPassword:用戶(hù)口令,可省略。

  Send varBody

  varBody:指令集。可以是XML格式數(shù)據(jù),也可以是字符串,流,或者一個(gè)無(wú)符號(hào)整數(shù)數(shù)組。也可以省略,讓指令通過(guò)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é)果返回為無(wú)符號(hào)整數(shù)數(shù)組。

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

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

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

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

  Function GetResult(urlStr)

  Dim xmlHttp

  Dim retStr

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

  On Error Resume Next '出錯(cuò)處理

  xmlHttp.Open "POST", urlStr, False '用POST方式打開(kāi)連接,異步執(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" '否則返回出錯(cuò)信息

  End If

  Set xmlHttp = nothing '釋放對(duì)象

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

  End Function

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

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

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

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

  table:服務(wù)端表名

  然后提交指令,等待并接收返回的處理結(jié)果。結(jié)果以字符串方式返回。最后由函數(shù)調(diào)用者處理并顯示結(jié)果。
http://blog.csdn.net/daniao2003/archive/2007/01/29/1496908.aspx


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南投县| 东至县| 庆安县| 顺义区| 枝江市| 邹平县| 乐安县| 冕宁县| 安顺市| 鄂州市| 霍城县| 常山县| 拜泉县| 思南县| 枣强县| 威海市| 门源| 金乡县| 旬阳县| 长治市| 卫辉市| 濮阳县| 宁安市| 阿图什市| 竹山县| 新乡市| 辽宁省| 靖远县| 夏津县| 五家渠市| 九龙县| 满洲里市| 邓州市| 深泽县| 崇左市| 高阳县| 木里| 娄底市| 综艺| 桂林市| 报价|