DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 用XML在頁面內刷新數據
用XML在頁面內刷新數據
編輯:XML詳解     
不離開頁面就能刷新頁面中的(部分)數據好處多多。主要是不需要寫無聊代碼維護 state。ASP.Net (以及其雛形 VI6 SOM)中的 server-side control (VI6 DTC, Script Library) 通過大量hidden input 來維護頁面 state,其功力之深,非吾輩能及。所以我們要想辦法不離開頁面就能得到新數據,

1. XMLHTTP
   這種方法意思和 RDS 差不多,但在 XML 時代,這種方法顯得比較正經兒。
   網上有個比較好的例子:http://www.ASPtoday.com/articles/20001219.htm
   Using Fat ClIEnts For E-commerce
   作者起這個名字 (Fat clIEnt) 就是說要求 browser 要支持 XMLHTTP。
   代碼片斷:
   Function getCategorIEs()
      Dim oXMLHTTP " As Object
      Dim oCategorIEs " As Object
      Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")
      "--- set the XMLHTTP call and issue send (no parm as category
      "--- is included in URL
      oXMLHTTP.open "GET",SERVER_PATH & "demo.ASP?action=getcategorIEs",False
      oXMLHTTP.send
      "--- load the response into the CategorIEs data island        

dsoCategorIEs.loadXML oXMLHTTP.responseText
      "--- transform into Html and assign to innerHtml property
      divCategorIEs.innerHtml = dsoCategories.documentElement.transformNode(dsoCategorIEsXSL.documentElement)
      "--- tidy up the object
      Set oXMLHTTP = Nothing      
   End Function

   其實直接使用 DOMDocument.load 也是一樣的。
   代碼片斷:
   var oXMLDoc = new ActiveXObject("MSXML");
   sURL = "<%=strPathInfo%>XMLCity.ASP?State=" + sState;
   oXMLDoc.url = sURL;

   不顯性地創建 ActiveXObject 也可以,變通的方法是使用 <XML ID="myData">。

  2. 如何支持 Netscape browser?
   考慮到可以使用 XML SRC 的方式在頁面中獲得 XML data,我們可以仔細看一眼 Html propertIEs: SRC。
   可以注意到還有個常用 tag 具備這個 attribute -- IFrame。
   所以我們可以使用下面的思路來從 server 獲取數據,這回我們不使用 XML island, ActiveX Object,以便支持 NN。
   a. 在頁面中加一個隱藏的 IFrame。
   b. 需要調用數據時,語句形如:IFrame.src = "http://localhost/getData?a=123"
 c. 為了迎合 NN 的胃口,我們的返回值不是直接 XML Data,而是 Html,這樣才能被 IFrame 接受
   d. 但最重要的是,這個 Html Page 實際上是一個 well-formed 的 XML document。比如:

      <Html>
      <BODY>
      <P ID="P1">abc</P>
      <P ID="P2">def</P>
      <P ID="P3">ghi</P>
      </BODY>
      </Html>
   e. 我們可以使用 clIEnt-side Javascript 把這個 well-formed XML Doc 中的數據抓取出來,加入到我們的 select listbox 中。

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