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

首頁 > 學院 > 開發設計 > 正文

利用XML不離開頁面刷新數據

2019-11-18 20:51:29
字體:
來源:轉載
供稿:網友
開門見山,不離開頁面就能刷新頁面中的(部分)數據好處多多。主要是不需要寫無聊代碼維護 state。asp.net (以及其雛形 VI6 SOM)中的 server-side control (VI6 DTC, Script Library) 通過大量hidden input 來維護頁面 state,其功力之深,非吾輩能及。所以我們要想辦法不離開頁面就能得到
新數據,這樣生活會比較好過。

其實辦法早就有很多。比如自己寫 ActiveX Control 或 java Applets,或使用系統自己帶的。如果是 IE 瀏覽器,很久以前就可以使用 ADO RDS 之類的方法從 server 端遠程獲取數據。我們現在看看 xml 新石器時代的幾種方法:

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 也是一樣的。
參見 http://www.chinaasp.com/sqlbbs/showEssence.asp?id=3586
Zee 的帖子:“在IE里應用XML的一個小例子:解決雙下拉選單的連動問題。”
代碼片斷:
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 DOM Object。)


掛一漏萬,希望大家再加上幾種方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳东县| 海晏县| 五台县| 和平区| 旌德县| 那坡县| 松滋市| 大化| 竹溪县| 临高县| 稷山县| 郧西县| 宝丰县| 文山县| 财经| 布拖县| 常熟市| 揭西县| 如皋市| 改则县| 宣城市| 巫溪县| 孝感市| 张家界市| 阿城市| 鄂尔多斯市| 中牟县| 隆化县| 兖州市| 布尔津县| 泸溪县| 京山县| 建湖县| 乌鲁木齐县| 怀安县| 宁陕县| 图们市| 辽阳县| 内丘县| 即墨市| 青州市|