asp优化:用数据绑定实现高效率动态网页

数据绑定(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. 数据绑定支持的操作

   对于只读类型的Data Consumer来说,数据绑定支持的操作就是显示DSO提供的数据集。具体功能包括:

   ● 动态增加和修改被绑定元素及DSO,如改变所显示的数据字段、对数据集进行过滤和排序等。

   ● 动态改变数据集的显示方式,数据可以用HTML格式显示,也可用简单的Text格式显示。

   ● 动态控制被显示数据的数量,即可动态改变分页显示时每页包含的记录数。

   支持Update功能的Data Consumer不但支持上述功能,还支持记录的增加、修改和删除。也就是说,用户在交互页面上对数据的增加、修改和删除,将影响到显示该数据的元素所绑定到的数据集。为了方便对数据集的控制,数据绑定允许开发人员使用ADO(Active Data Objects)提供的所有方法和属性来维护DSO提供的数据集,包括Insert、Update、Delete及Navigation等操作。

   数据绑定中一个非常重要的问题是,一定要清楚对Data Consumer所做的操作到底影响了哪些数据:是只对本地Cache中的数据起作用,还是已真正改变了后端数据库(这与DSO的类型有关)。TDC、XML Data Source以及MSHTML Data Source都只支持对Cache中的数据进行改变,而不支持将改变后的Cache中的数据提交到数据源所连接的后端数据库。而RDS和JDBC DataSource Applet都支持修改后端数据库的功能。

比较及结论 
   从表1可以看出,相对于服务器端脚本,数据绑定所生成的网页工作效率明显提高。但是使用该方法对程序员的要求较高,需要对Data Binding的深刻理解才能充分发挥将它的优良特性。复杂的工作就是高效率所必须付出的代价,在应用中,开发者应根据具体的需求和实际情况,选择适宜的方法或是将两者结合使用,以便获得最高的性能价格比。

表1
 
比较项目

数据绑定

服务器端脚本

网页工作效率

数据下载

同步/异步

同步

对数据进行过滤或排序

只需建立一次连接

n次操作需建立n次连接

分页显示

只需建立一次连接

每次翻页需要新连接和定位数据

通过data consumer直接修改数据库

支持,且不需编程

支持,但需编程

结论

下载速度明显提高,与用户交互快,提供高质量的服务

下载速度与交互速度不如数据绑定方式

编程工作效率

编程灵活性

编程工作量

编程复杂性

结论

编程工作量少,使用灵活.但要求程序员必须熟悉dso和data consumer所支持的特殊方法和属性,编程比服务器端脚本复杂

虽然编程工作量大,但使用灵活简便,只需熟悉一般数据库操作的程序员即可胜任

时间: 2024-10-20 05:24:54

asp优化:用数据绑定实现高效率动态网页的相关文章

asp优化:最大限度优化你的Asp性能

ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快.这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章.对于一个急燥的用户来说,任何在按下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着它们会转到浏览其它的站点?假如你的是商业站点,这有可能意味着失去潜在的销售. 我们没有任何办法控制用户的带宽,但我们的确能通过优化Asp 站点来获得最佳的性能.大部分潜在性能的提升是通过系统改变而不是紧缩代码,一个不合适的想法是,一旦遇到系统效率问题,就向系统管理

Java Web学习(2):静态网页与动态网页

一静态网页 (1)静态网页概述 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是 标准的HTML文件,它的文件扩展名是.htm..html,可以包含文本.图像.声音.FLASH动画.客户端脚本和ActiveX 控件及JAVA小程序等.静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的. 静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页.静态网页相对更新起来比 较麻烦,适用于一般更新较少的展示型网站

静态动态网页

静态网页资源 在网页设计中,纯HTMl格式的网页(包含图片,视频,JS,CSS等样式)通常被称作“静态网页”. 静态网页是相对于动态网页而言的,是指没有后台数据库,不包含程序,不可交互的网页. 静态网页的特点 开发人员写了什么,显示就是什么,一旦编写完成,就不会有任何改变.静态网页一般适用于更新较少的展示型网页,例如(酒水,家具,水果等宣传页),是很多中小网站的展示方式. 静态网页资源对应文件扩展名为 纯文本文件,如.htm .html .xml  .js   .css 图片或数据文档,如 .j

ASP.NET总结——静态网页与动态网页

刚刚看完<北大青鸟ASP.NET>视频的前六集.这六集视频给我太多太多听觉和视觉上的"刺激"(太卡了).尽管如此,在视频当中,我依然接触了许多新的概念,知识.(其实也不算新,只是这次好像正式了些.)之后,它们就激起了我很大的求知欲望.可是搜索了一番,还是觉得自己理解地很浅显,但是我觉得非常有必要总结一下,这样才能为以后深入地理解打下基础.         静态网页与动态网页 当初,在看<牛腩新闻发布系统>的时候,小牛老师有的时候创建的网页的后缀是.aspx的,有

关于静态网页与动态网页的优化思想

在高并发,高访问量的场景下做架构优化: 静态网页的效率是动态网页效率的的10~30倍.且动态网站的并发能力也很低. 所以在高并发的环境下,应该尽力将动态网页转化成静态的网页提供服务. 关键的问题是: 1将动态页面转换成静态页面,不是直接请求数据库和动态服务器. 2.将静态内容推送到前端缓存中提供服务

动态网页脚本语言

在ASP .PHP.JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑.普通的 HTML页面只依赖于Web服务器,而ASP .PHP.JSP页面需要附加的语言引擎分析和执行程序代码.程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器.ASP .PHP.JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持. 二.技术特点: (一)ASP的技术特点: 1. 使用VBScript .JScript等简单易懂的脚本语言,结合HTML代

动态网页和静态网页的特点

静态网页的基本概述静态网页的网址形式通常是以.htm..html..shtml..xml等为后后缀的.静态网页,一般来说是最简单的HTML网页,服务器端和客户端是一样的,而且没有脚本和小程序,所以它不能动.在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画.FLASH.滚动字母等,这些"动态效果"只是视觉上的,与下面将要介绍的动态网页是不同的概念. 静态网页的特点(1)静态网页每个网页都有一个固定的URL,且网页URL以.htm..html..shtml等常见形式为

动态网页和静态网页的区别

一.从功能方面来说动态网站与静态网站的区别 1. 动态网站可以实现静态网站所实现不了的功能,比方说:聊天室.论坛.音乐播放.浏览器.搜索等:而静态的网站则实现不了.2. 静态网站,如用Frontpage或Dreamweaver开发出来的网站,其源代码是完全公开的,任何浏览者都可以非常轻松地得到其源代码,也就是说,自己设计出来的东西很容易被别人盗用.动态网站,如:ASP开发出来的网站,虽然浏览者也可以看到其源代码,但是那已经是转换过以后的代码,想盗用源代码那是不可能的,因为它的源代码已经放在服务器

J2EE动态网页技术—JSP

学习JSP,我们需要知道的是什么是JSP?JSP有什么特点?JSP与svelte有什么关系? 第一个概念:JSP是服务器端运行的一种脚本语言,这类似的语言还有CGI.ASP.PHP等.          CGI:采用单进程模式,每次请求服务器端的一个服务,都需要启动一个新的线程.所以当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,加重了服务器的负担,使服务器的执行效率变得越来越低下. ASP:是微软所开发一种后台脚本语言,特点简单易用,其局限性在于只能在微软的服务器平台上良好运行,