推薦:ASP中巧用Response屬性 -- contenttype我在用ASP為某單位制作網(wǎng)頁(yè)時(shí)遇到這樣一個(gè)問題,單位以前的MIS系統(tǒng)中將一些Word文件以字節(jié)流的形式保存在數(shù)據(jù)庫(kù)中,現(xiàn)在用戶要求我用ASP將這些Word文件數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出并在網(wǎng)頁(yè)中顯示出來。
數(shù)據(jù)綁定(Data Binding)并不是一個(gè)新概念,IE 4.0就已對(duì)其給予了豐富的支持。但是,數(shù)據(jù)綁定并未受到應(yīng)有的重視,許多開發(fā)者似乎更加愿意使用服務(wù)器端腳本(Server Script)的方法。然而實(shí)際上,無(wú)論是在動(dòng)態(tài)網(wǎng)頁(yè)的代碼實(shí)現(xiàn)方面,還是在動(dòng)態(tài)網(wǎng)頁(yè)的工作效率方面,數(shù)據(jù)綁定的效率都比后者更高。
本文將介紹數(shù)據(jù)綁定的體系結(jié)構(gòu)、工作原理及其實(shí)現(xiàn)方式,最后對(duì)這兩種方法在編程工作量和網(wǎng)頁(yè)效率等方面做出比較和結(jié)論。
首先讓我們看一個(gè)簡(jiǎn)單的例子。某一網(wǎng)頁(yè)顯示倉(cāng)庫(kù)的當(dāng)前庫(kù)存情況,用戶可自行選擇數(shù)據(jù)的排序方式:按貨物的名稱、價(jià)格、庫(kù)存量等排序。使用服務(wù)器端的技術(shù),例如CGI、ISAPI,或者ASP等中間件,用戶若需要N種排序方式,則應(yīng)用程序腳本至少要向服務(wù)器提交N次數(shù)據(jù)請(qǐng)求。對(duì)于同樣內(nèi)容的數(shù)據(jù),僅僅因?yàn)轱@示方式的不同,就要進(jìn)行多次數(shù)據(jù)庫(kù)操作,耗費(fèi)大量的網(wǎng)絡(luò)帶寬。
另一個(gè)常見的例子是,大量數(shù)據(jù)需要分頁(yè)顯示時(shí),每一次翻頁(yè)都需要重新向服務(wù)器建立連接,遞交查詢請(qǐng)求,再定位數(shù)據(jù)。對(duì)這些類似問題,數(shù)據(jù)綁定都提供了高效的解決方案。
數(shù)據(jù)綁定的體系結(jié)構(gòu)和工作原理
數(shù)據(jù)綁定體系結(jié)構(gòu)包括四個(gè)組成部分:數(shù)據(jù)源對(duì)象(Data Source Object)、數(shù)據(jù)顯示對(duì)象(Data Consumers)和兩個(gè)代理器(Binding Agent與Table Reptition Agent)。數(shù)據(jù)源對(duì)象向網(wǎng)頁(yè)提供數(shù)據(jù),數(shù)據(jù)顯示對(duì)象就是顯示數(shù)據(jù)的HTML元素,代理器則用來保證前兩者的工作同步。圖1顯示了這四個(gè)部分協(xié)同工作的原理。
如圖1所示,數(shù)據(jù)源對(duì)象負(fù)責(zé)與后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器通信,并將DB Server返回的數(shù)據(jù)以集合形式緩存在本地Cache。此后,對(duì)此數(shù)據(jù)集所做的任何操作,如排序、過濾、取子集等,都在本地Cache中進(jìn)行,由代理器來負(fù)責(zé)數(shù)據(jù)源和顯示該數(shù)據(jù)的HTML元素之間的通信和同步。
圖1
數(shù)據(jù)綁定的這種工作方式,使得程序開發(fā)人員只要使用擴(kuò)展HTML和可插入的數(shù)據(jù)源對(duì)象,就能使腳本的編程量達(dá)到最小。與傳統(tǒng)的服務(wù)器端腳本生成的網(wǎng)頁(yè)相比,數(shù)據(jù)只要一次下載到客戶端后,對(duì)該數(shù)據(jù)所做的任何操作都不再需要額外的服務(wù)器請(qǐng)求,因此節(jié)省了網(wǎng)絡(luò)帶寬,提高了下載速度。
數(shù)據(jù)綁定的實(shí)現(xiàn)
本節(jié)將根據(jù)數(shù)據(jù)綁定的體系結(jié)構(gòu),分別介紹它的各個(gè)組成部分及其實(shí)現(xiàn)。
1. 數(shù)據(jù)源對(duì)象(Data Source Object)
實(shí)現(xiàn)數(shù)據(jù)綁定的第一步是:確定網(wǎng)頁(yè)所要顯示的數(shù)據(jù),據(jù)此選擇一個(gè)適合的數(shù)據(jù)源對(duì)象(DSO),再在網(wǎng)頁(yè)中引用該DSO。數(shù)據(jù)綁定的靈活性首先表現(xiàn)在支持多種DSO,IE 4.0及以上版本支持下列DSO類型:
●Tabular Data Control(TDC):這是一種簡(jiǎn)單的DSO,提供對(duì)格式化文本文件的訪問。也就是說,TDC提供的數(shù)據(jù)來源是用指定分隔符來格式化的文本文件。
●Remote Data Service(RDS):RDS的前身是ADC(Access Data Control)。RDS通過OLE-DB或ODBC與數(shù)據(jù)庫(kù)通信,獲得數(shù)據(jù)。
●JDBC DataSource Applet:它與RDS的不同之處在于數(shù)據(jù)庫(kù)連接使用JDBC。
●XML Data Source:擴(kuò)展標(biāo)記語(yǔ)言XML使用標(biāo)準(zhǔn)的方式來描述和交換結(jié)構(gòu)化數(shù)據(jù);XML的數(shù)據(jù)以開放的、基于文本的格式進(jìn)行描述,并通過標(biāo)準(zhǔn)HTTP協(xié)議傳輸。XML本身的特性決定了它天生就是一種靈活強(qiáng)大的DSO。IE4.0使用JAVA APPLET來實(shí)現(xiàn)XML DSO;IE5.0支持Data Island,用戶可以直接用<XML>標(biāo)記定義的數(shù)據(jù)作為DSO。
●MSHTML Data Source:除了使用外部的控件作為DSO外,開發(fā)人員還可以在HTML文檔中定義數(shù)據(jù)集,并使用MSHTML本身作為數(shù)據(jù)源。
●自定義類型DSO:除了以上明確定義的這五類DSO,IE還支持用戶自定義類型的DSO,只要該DSO遵循IE 4/MSHTML Data Binding Interface即可。
DSO可以在設(shè)計(jì)時(shí)指定,也可以在運(yùn)行時(shí)動(dòng)態(tài)增加、修改和刪除。
2.支持?jǐn)?shù)據(jù)綁定的數(shù)據(jù)顯示對(duì)象(Data Consumer)
可綁定的HTML元素共分為兩大類:?jiǎn)沃祵?duì)象(Single-valued Consumer)和表對(duì)象(Tabular Consumer)。單值對(duì)象顯示DSO提供的當(dāng)前記錄的某一個(gè)域,而表對(duì)象中的每行元素則分別對(duì)應(yīng)一條記錄中不同的域,并以此為模板重復(fù)顯示數(shù)據(jù)集中的每條記錄。數(shù)據(jù)顯示對(duì)象既可以在設(shè)計(jì)時(shí)綁定到DSO,也可以在運(yùn)行時(shí)動(dòng)態(tài)綁定。
DSO和Data Consumer的動(dòng)態(tài)特性,使得已經(jīng)存在的元素綁定可以被修改;不但如此,DHTML對(duì)象模型(DHTML Object Modle)還支持運(yùn)行時(shí)動(dòng)態(tài)增加數(shù)據(jù)綁定元素和數(shù)據(jù)源對(duì)象,因此數(shù)據(jù)可以以異步方式下載到客戶端。該特性使得開發(fā)人員可以減少網(wǎng)頁(yè)內(nèi)容的初始化下載時(shí)間,并可在一個(gè)頁(yè)面上顯示多個(gè)不同數(shù)據(jù)集的內(nèi)容,交互式用戶將由此獲得高質(zhì)量的服務(wù)。
支持?jǐn)?shù)據(jù)綁定的HTML元素包括:A、Applet、Button、Div、Frame、Iframe、Img、Input(包括Checkbox、Hidden、Label、Password、Radio、Text等類型)、Label、Marquee、Select、Span和Textarea。其中,A、Button、Div、Img、Frame、Iframe、Lable、Marquee以及span支持只讀功能的數(shù)據(jù)綁定;而Input(除Button類型外)、Select、Textarea、Object和Applet元素支持被綁定數(shù)據(jù)的Update功能。
3. 數(shù)據(jù)綁定支持的操作
分享:怎樣用ASP程序判斷一個(gè)盤上是否有文件以下為引用的內(nèi)容:<%dim objfolderdim objfsodim j set fso=server.CreateObject("scripting.filesystemobject&q
新聞熱點(diǎn)
疑難解答
圖片精選