不能停止

          運動,游玩,學習,我的愛不能停止

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            5 隨筆 :: 3 文章 :: 8 評論 :: 0 Trackbacks
          MSXML中提供了Microsoft.XMLHTTP對象,能夠完成從數據包到Request對象的轉換以及發送任務。
          創建XMLHTTP對象的語句如下:
          Set objXML = CreateObject("Msxml2.XMLHTTP") 或
          Set objXML = CreateObject(“Microsoft.XMLHTTP”)
          ' Or, for version 3.0 of XMLHTTP, use:
          ' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
          對象創建后調用Open方法對Request對象進行初始化,語法格式為:
          poster.open http-method, url, async, userID, password
          Open方法中包含了5個參數,前三個是必要的,后兩個是可選的(在服務器需要進行身份驗證時提供)。參數的含義如下所示: 
          http-method: HTTP的通信方式,比如GET或是 POST
          url: 接收XML數據的服務器的URL地址。通常在URL中要指明 ASP或CGI程序
          async: 一個布爾標識,說明請求是否為異步的。如果是異步通信方式(true),客戶機就不等待服務器的響應;如果是同步方式(false),客戶機就要等到服務器返回消息后才去執行其他操作
          userID 用戶ID,用于服務器身份驗證
          password 用戶密碼,用于服務器身份驗證
          XMLHTTP對象的Send方法
          用Open方法對Request對象進行初始化后,調用Send方法發送XML數據:
          poster.send XML-data
          Send方法的參數類型是Variant,可以是字符串、DOM樹或任意數據流。發送數據的方式分為同步和異步兩種。在異步方式下,數據包一旦發送完畢,就結束Send進程,客戶機執行其他的操作;而在同步方式下,客戶機要等到服務器返回確認消息后才結束Send進程。
          XMLHTTP對象中的readyState屬性能夠反映出服務器在處理請求時的進展狀況。客戶機的程序可以根據這個狀態信息設置相應的事件處理方法。屬性值及其含義如下表所示:
          值 說明
          0 Response對象已經創建,但XML文檔上載過程尚未結束
          1 XML文檔已經裝載完畢
          2 XML文檔已經裝載完畢,正在處理中
          3 部分XML文檔已經解析
          4 文檔已經解析完畢,客戶端可以接受返回消息
          客戶機處理響應信息
          客戶機接收到返回消息后,進行簡單的處理,基本上就完成了C/S之間的一個交互周期。客戶機接收響應是通過XMLHTTP對象的屬性實現的:
          ● responseTxt:將返回消息作為文本字符串;
          ● responseXML:將返回消息視為XML文檔,在服務器響應消息中含有XML數據時使用;
          ● responseStream:將返回消息視為Stream對象

          ------就是下面這個很簡單的JAVASCRIPT函數SEND(STR,URL)---------------
          使用到的是XMLDOM和XMLHTTP對象.用這種技術的好處是:全JS控制,方便/簡單,比RDS
          或者remote好多了.(前提:服務器端和客戶端都必須安裝IE5或者更高版本),在俺貼的
          那個無刷新在線信息功能使用的也是這種技術.有興趣的朋友可以看看..
          function Send(Str,URL)
          //STR參數是傳入的XML數據,你也可以傳入其他文本數據.
          //不過這個函數需要服務器端處理之后返回XML數據,你也可以修改一下
          //URL參數表示你所要處理數據的ASP文件地址
          {
          var Http = new ActiveXObject("Microsoft.XMLHTTP") //建立XMLHTTP對象
          var Dom = new ActiveXObject("Microsoft.XMLDOM") //建立XMLDOM對象
          Http.open("POST",URL,false)
          //第一個參數的意思是,用"POST"方式發送數據.可以大到4MB,也可以換為"GET".只能256KB
          //第2個參數的意思是數據發送到哪個文件處理
          //第3個參數意思是同步或異步方式.TRUE為異步,FALSE為同步
          Http.send(Str) //開始發送數據.............嘟嘟..
          Dom.async=false //設置為同步方式獲取數據
          Dom.loadXML(Http.responseText)
          //開始獲取服務器端處理后返回的數據.我在這里設置必須為XML數據,否則出錯.
          //你也可以自己修改.使返回的是2進制或者記錄集數據.................................
          if(Dom.parseError.errorCode != 0) //檢查是否發生獲取數據時錯誤
          {
          delete(Http)
          delete(Dom)
          return(false)
          }
          else
          {
          var Back = Dom.documentElement.childNodes.item(0).text
          //得到返回的XML數據,我這里假設處理程序只返回一行XML數據(一個節點)
          delete(Http)
          delete(Dom)
          return(Back) //函數返回數據.......................結束
          }
          }
           
          VAR CAT = Send("<用戶資料><姓名>謝檸檬</姓名></用戶資料>","HTTP://WWW.CHINAASP.COM/VIVA.ASP") //執行函數
          IF(CAT == FALSE)
          {
          ALERT("對不起.處理程序返回的是FALSE.數據處理已經失敗........")
          }
          ELSE
          {
          IF(EVAL(CAT))
          {
          ALERT("OK.數據已經發送成功.兼以處理完成!!!!!!")
          }
          ELSE
          {
          ALERT("對不起.處理程序返回的是FALSE.數據處理已經失敗........")
          }
          }
           
          ===============================VIVA.ASP============================
          ON ERROR RESUME NEXT
          DIM BOBO
          DIM MOMO
          SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
          BOBO.ASYNC = FALSE
          BOBO.LOAD REQUEST
          IF BOBO.PARSEERROR.ERRORCODE <> 0 THEN
          RESPONSE.WRITE("<程序處理結果><最終結果>FALSE</最終結果></程序處理結果>")
          ELSE
          SET MOMO = BOBO.DOCUMENTELEMENT
          IF MOMO.CHILDNODES.ITEM(0).TEXT = "謝檸檬" THEN
          RESPONSE.WRITE("<程序處理結果><最終結果>TRUE</最終結果></程序處理結果>")
          ELSE
          RESPONSE.WRITE("<程序處理結果><最終結果>FALSE</最終結果></程序處理結果>")
          END IF
          END IF
          SET BOBO = NOTHING
          posted on 2005-10-21 14:57 快樂的射手 閱讀(262) 評論(0)  編輯  收藏 所屬分類: DONET

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 陈巴尔虎旗| 贵南县| 隆昌县| 玉树县| 白朗县| 临沂市| 芦山县| 延长县| 清河县| 临海市| 驻马店市| 徐闻县| 宁明县| 静宁县| 山西省| 吉水县| 临高县| 武宁县| 沛县| 密云县| 南部县| 莲花县| 嘉定区| 大同市| 大厂| 高安市| 新平| 郑州市| 沙河市| 岑巩县| 麻城市| 台中市| 新余市| 石阡县| 太谷县| 武安市| 浏阳市| 铜鼓县| 泉州市| 上虞市| 蕲春县|