六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用XML數(shù)據(jù)島處理用戶界面問(wèn)題 - 2

[摘要]把處理過(guò)程移到客戶端  當(dāng)Web服務(wù)器返回網(wǎng)頁(yè)后,所有進(jìn)一步的操作處理都在客戶端進(jìn)行。我原先認(rèn)為如果向客戶端發(fā)送一個(gè)大的數(shù)據(jù)集會(huì)使程序的速度放慢。但后來(lái)我卻發(fā)現(xiàn)一次性發(fā)送所有數(shù)據(jù)比在客戶與服務(wù)器之間...
把處理過(guò)程移到客戶端

  當(dāng)Web服務(wù)器返回網(wǎng)頁(yè)后,所有進(jìn)一步的操作處理都在客戶端進(jìn)行。我原先認(rèn)為如果向客戶端發(fā)送一個(gè)大的數(shù)據(jù)集會(huì)使程序的速度放慢。但后來(lái)我卻發(fā)現(xiàn)一次性發(fā)送所有數(shù)據(jù)比在客戶與服務(wù)器之間來(lái)回地進(jìn)行數(shù)據(jù)交換快得多。唯一可被注意到的停頓只是在IE5的XML解析器讀取數(shù)據(jù)時(shí)的一個(gè)短暫的初始化停頓。

  HTML文件本身包含有4個(gè)元素:一個(gè)保存州名數(shù)據(jù)的選擇列表(主列表),XML數(shù)據(jù),一個(gè)從屬列表的div標(biāo)記占位符,和兩個(gè)腳本。當(dāng)州名選擇列表的選項(xiàng)發(fā)生變化時(shí),第二個(gè)腳本就執(zhí)行(Listing 2)。

  你希望每次用戶選擇一個(gè)州時(shí)都能從數(shù)據(jù)島重新得到相應(yīng)的商店列表。所以你需要一個(gè)腳本去處理州名選擇列表的onChange事件:

  

在這個(gè)腳本中重新得到了州名選擇列表的值:
  Dim stateCode

  stateCode=document.all.State.value

  接著重新得到所選定州的商店列表。你可以通過(guò)兩個(gè)方法得到這個(gè)列表。第一個(gè)辦法就是獲得<XML>標(biāo)記符的記錄集屬性的引用:

  Dim R

  Set R = xmldata.recordset

通過(guò)這個(gè)方法得到的記錄集是一個(gè)標(biāo)準(zhǔn)的ADO記錄集對(duì)象,字段名都與標(biāo)記符相對(duì)應(yīng)。這個(gè)方法只有在每個(gè)記錄都有同樣的字段的"簡(jiǎn)單"XML數(shù)據(jù)文件中才能很好地工作。

  第二個(gè)方法就比較強(qiáng)大和普遍。IE5把XML數(shù)據(jù)島象其他HTML元素一樣對(duì)待。為了在客戶端訪問(wèn)XML數(shù)據(jù),你只需通過(guò)ID來(lái)引用該元素。IE5將返回XML樹(shù)的根元素(document元素):

  set xml = document.all("xmldata")

  你用這個(gè)document元素可以執(zhí)行Extensible Stylesheet Language (XSL)查詢語(yǔ)句。使用XSL查詢語(yǔ)句,你可以得到某個(gè)給定層次上的節(jié)點(diǎn)列表,包含指定屬性的節(jié)點(diǎn)列表,或以上兩者的任意組合。例如,以下的查詢語(yǔ)句返回所有符合用戶所選州的商店節(jié)點(diǎn):

  Dim nodes

  set nodes = xml.selectNodes ("locations/state[@code='" & stateCode & "']/store")

XSL搜索字符串看起來(lái)很象一個(gè)文件路徑;它有XML樹(shù)相應(yīng)各層次的值。用"/"分隔每個(gè)層次。以"節(jié)點(diǎn)=數(shù)值"的匹配方式加到相關(guān)節(jié)點(diǎn)的"[]"中搜索指定數(shù)值的節(jié)點(diǎn),在屬性名前加上"@"來(lái)搜索包含指定屬性的節(jié)點(diǎn)。運(yùn)行selectNodes方法將返回一個(gè)IXMLDOMNodes集合對(duì)象。最后,顯示從屬列表。最簡(jiǎn)單的方法:根據(jù)XSL查詢語(yǔ)句返回的節(jié)點(diǎn)列表來(lái)改變從屬列表的標(biāo)
記符的值:

  set aList = document.all("cities")

  aList.options.length = 0

  i = 0

  For Each N In nodes

   anID = N.selectSingleNode("id").text

   aCity = N.selectSingleNode _("city").text

   aList.options.length = _aList.options.length + 1

   aList.options(i).id = anID

   aList.options(i).value = aCity

   aList.options(i).innerText = aCity

   i = i + 1

  Next

  現(xiàn)在你知道了如何利用XML數(shù)據(jù)島來(lái)解決從屬列表問(wèn)題。注意:這一技巧不適合于大規(guī)模的數(shù)據(jù)-如那些成千上萬(wàn)的記錄-但如果那樣的話,那主要還是一個(gè)如何顯示的問(wèn)題,而非技術(shù)上的問(wèn)題。如果你發(fā)現(xiàn)一個(gè)查詢語(yǔ)句可能返回不適合的大組記錄,你即可以限制返回記錄的數(shù)目(例如為用戶提供一個(gè)"More Record"按鈕),又可以修改用戶界面使用戶可以點(diǎn)擊下一層次的內(nèi)容,因此而限制了用戶必須選擇的記錄數(shù)目。





主站蜘蛛池模板: 一级做a | 热热热热色 | 全免费a级毛片免费看不卡 全黄一级片 | 日日影视| 涩涩99| 天天看有黄有色大片 | 日本丰满bbb | 日本成人在线免费 | 四虎国产精品永久地址48 | 亚洲高清视频在线 | 亚洲 欧美 国产 中文 | 五月婷婷社区 | 亚洲 欧美 精品 中文第三 | 影音先锋大型av资源 | 午夜视频在线观看网站 | 色噜噜狠狠色综合欧洲selulu | 亚洲一二三在线 | 午夜在线精品不卡国产 | 伊人亚洲综合网成人 | 亚洲五月激情 | 日日操夜夜添 | 人人草网 | 亚洲国产一 | 性盈盈影视院 | 中文天堂在线www | 青娱乐福利 | 亚洲男人网站 | 欧美一区二区激情视频 | 日本一卡2卡3卡四卡精品 | 日本不卡免费新一区二区三区 | 日日干夜夜操s8 | 日本中文字幕在线 | 日本a级片在线播放 | 日韩国产免费一区二区三区 | 亚洲国产精品线在线观看 | 欧美一级黄色带 | 亚洲美女在线播放 | 亚欧洲精品bb | 色婷婷久 | 五月婷中文字幕 | 四虎影院在线网址 |