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