DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XMLHTTP: 網站超級粘合劑
XMLHTTP: 網站超級粘合劑
編輯:XML基礎     

 

簡介
   許多ASP開發者都希望在自己的網站中能夠使用到微軟提供的支持XML
  的新功能。其中,有些人發現可以使用XML來裝飾網站,但是,如果僅僅
  是只使用XMLDOM的話,你就會失去其他一些更重要的東西。畢竟,XML是用來
  作為一種網上數據表現和數據交換的形象出現的。盡管使用XML可以非常滿意
  地描繪你的數據,但是開發者卻不得不使用CGI來進行浏覽器和服務器之間的
  數據交換,除非你在浏覽器端和客戶端都使用XML文檔。
   當然CGI從傳達信息的角度來說是能夠完全勝任的,但是如果要是和XML來
  一起使用的話就讓XML失去了很多自己的用處。幸運的是,微軟提供了一種更加
  有效的方法來傳輸XML,雖然該方法在很大程度上並不被人所重視。
   在微軟提供的MSXML解釋器包中有一系列的對象,也許沒有人會重視其中的
  XMLHTTPConnection對象。簡而言之,它允許你打開一個到服務器上的HTTP連接,
  發送一些數據和取回一些數據。並且所有的這一切都是在很少的幾段腳本中就能夠實現。
  使用XMLHTTP對象通常是進行XML數據交換,但其他格式的數據也是允許的。
  
  在商業程序中的運用
   這種交換類型的標准模式是客戶端發送一個XML格式的文本字符串到服務端,
  然後服務端將這個字符串裝載入一個XMLDOM對象中並且解釋它,然後返回一段
  HTML給客戶端,或則是另外一段XML代碼給客戶端讓客戶端的浏覽器自己解釋。
  在這種方式下,對於信息的傳遞來說是非常有效的形式,尤其是當你使用
  DHTML允許你根據返回信息動態顯示時。
   舉例如下(只能夠運行在客戶端和服務端都安裝有IE5的情況下)
   <%
   if (Request.ServerVariables("REQUEST_METHOD") == "POST" )
   {
   var req= Server.CreateObject("Microsoft.XMLDOM");
   req.async=false;
   req.load(Request);
   if (req.documentElement.nodeName=="timesheet")
   {
   //對數據隨便進行一些處理。。。
   .....
   Response.write("<h1>Timesheet Updated!</h1><b>"+req.documentElement.text+"</b>");
   }
   }
   else
   { %>
  
   <div id="divDisplay">The response will be put in here</div>
   <input type="button" onclick="sendData();" value="Send it!">
   <script>
   function sendData(){
   var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   xmlhttp.Open("POST", "http://www.yoursite.com/thispage.asp", false);
   xmlhttp.Send("<timesheet>An impossibly useless timesheet fragment</timesheet>");
   divDisplay.innerHTML=xmlhttp.responseText;
   }
   </script>
  <% } %>
  
   在上面的代碼中,其中客戶端的腳本將建立一個適當的COM對象,打開一個在網站
  www.yoursite.com的連接(使用了HTTP的POST方法,同步方式),使用Send方法發送
  一個XML片段,然後根據服務器上的響應填充divDisplay區域(這裡使用了DHTML)。
  具體的執行過程是,在服務器上,Request對象被轉載入一個XML文檔然後被解釋器解釋。
  服務器響應XMLHTTP連接的方式和響應其他任何方式的HTTP連接是一樣的,也是使用了
  Response對象。注意的是XMLHTTP本身並不檢查request或則response的有效性,也就是說
  Request或則Response中的數據可是並不需要一定是XML文檔。
   “聰明,”你也許會說。“但是為什麼我們不使用CGI來代替它呢?”呵呵,我們要注意
  這樣一件事,就是如果使用這種方式進行客戶端--服務端的交互時整個頁面並沒有被刷新。
  我們都知道,如果要是通過CGI來做任何事情都必將導致浏覽器接收一個完整的新頁面,而
  這尤其影響

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved