ASP 3.0高级编程(四十四)

be1ved

be1ved

2016-01-29 19:16

ASP 3.0高级编程(四十四),ASP 3.0高级编程(四十四)
  第10章 ASP与客户端数据

在一本ASP专著中讨论客户端数据,这与服务器端的ASP编程是否矛盾?情况并非如此,因为我们至今尚未碰到只从事服务器端编程的ASP程序员。虽然ASP是一项服务器端技术,但可以想象,编程人员不可能仅仅使用ASP进行编程。从事ASP编程的Web开发人员,仍然需要与客户端数据进行交互。
因此,围绕着ASP构建一个应用程序时必须考虑整个应用程序的情况,这也意味着必须考虑客户端。为了获得一个运行良好、快速响应的应用程序,需要很好地使用客户端数据。
本章将讨论如何在客户端使用数据。特别将着重研究:
· 远程数据服务(Remote Data Services,RDS),如何向客户端传送数据以及客户端接收数据。
· 如何将ADO记录集绑定到HTML控件。
· 如何利用用户自定义组件提供数据。
· 如何更新客户端数据,并将其反馈到服务器。
· 如何从数据库中获取图像并将其显示在Web页面中。
· 如何创建基于表格的Web页面。
以上覆盖的范围相当广泛,同时有很多不同的方法可以取得相同的结果,但实际上实现起来并不是特别困难。

10.1 断开连接的记录集
首先需要掌握的是“断开连接的数据”的概念。迄今为止,在研究ADO的过程中,已经学习了获取记录集的方法,以及如何修改这些记录集中的数据。回顾一下,我们打开一个记录集,对数据做一些修改,然后再关闭这个记录集,在操作记录集的过程中,始终与服务器保持着连接。这是相当明显的,但别忘了Web在本质上是无状态的。如果想使用客户端数据,如何始终保持与服务器的连接?很简单,这是不可能实现的,这也是定义断开连接的记录集概念的缘由。
一个断开连接的记录集只是一个普通的记录集,但解除了与服务器的连接,成为孤立的对象,可以像普通的记录集那样对其执行更新、增加和删除操作。但这些变化只发生在记录集内部,并不反馈到服务器,因为记录集与服务器已不再保持着连接。这并不是缺点,因为可以与服务器重新建立连接,同时服务器可以对任何修改进行更新。即使服务器端的数据已经改变了,ADO仍然有方法让用户及时发现这些变化,这样用户就能决定哪些数据是正确的。这称为冲突处理(conflict resolution)。
断开连接的记录集使我们能在组件之间,包括服务器与客户之间,传送具有全部功能的记录集。本章后面将探讨如何在组件内创建断开连接的记录集。但这里不准备对此做过于详细的研究,因为本书第13章至第18章已经覆盖这部分内容,这里仅做简单的介绍,以便于了解组件是如何与远程数据服务交互的。

10.2 远程数据服务
远程数据服务(Remote Data Services,RDS)是允许我们处理客户端数据的一系列服务的统称。现在不用担心这方面的问题,因为RDS本身就是ADO的一部分,只有在需要传送和使用客户端数据时,才会使用。实际上RDS是由几个组件构成的。图10-1说明了这些组件以及它们之间是如何协同工作的。
图10-1  RDS的组件构成
组件似乎很多,但并不是所有的组件在每种情形下都被使用,实际上有一些不是RDS的一部分。然而这里还是把所有可能出现的组件都放在了图上,以备需要时查看。图10-1分成了两部分,因为使用客户端数据需要一些向客户端传送数据的方法,同时数据一旦到达客户端,也需要一些管理数据的方法。我们先从服务器端开始。

10.2.1 RDS服务器组件
虽然RDS用于传送和访问客户端数据,但其确实有一些基于服务器的组件。这是必需的,因为肯定需要某种方式将数据传送到客户端。因此有了一系列能访问数据并允许发送数据到客户端的服务器组件。我们把实际的数据传送称为调度(marshal)。
服务器端组件图的最上端是数据存储,由OLE DB提供者访问。它并不是RDS的一部分,但这表示只要有相应的OLE DB提供者,就可以通过RDS在客户端使用任何数据。至于如何处理服务器上的数据,可以有两种选择:
· 数据工厂(DataFactory)是缺省的用于访问数据存储的服务器端组件。它作为服务器端RDS组件的一部分安装在计算机上,除了能从数据存储中获取数据外,还为服务器处理发送到客户端以及从客户端发送来的数据。
· 自定义组件只是一个普通的提供了数据传送方法的COM组件。当数据工厂不能提供所需的功能时,可以使用自定义组件。本章将介绍一个简单的组件例子,在本书的后面还有一个更复杂的例子。
Web服务器使用这两种组件作为客户和服务器数据的接口。

10.2.2 RDS客户组件
在客户端先从底端的DataSpace对象开始,该对象作为客户端的一部分与数据工厂或自定义对象协同工作。DataSpace对象是一个代理对象,负责与服务器进行通信,同时也是数据传输的通道(或者通常所说的调度)。DataSpace对象是用客户端脚本语言或用HTML语言中的<OBJECT标记创建的COM对象。在本章后面会看到关于这方面的例子。
DataSpace对象上面是数据源对象(Data Source Object,DSO),负责存储客户端数据。一个数据源对象包含一个ADO数据记录集,与客户数据缓存共同管理数据。客户数据缓存只是一种管理客户端数据的客户光标服务。同时数据源对象又是
展开更多 50%)
分享

猜你喜欢

ASP 3.0高级编程(四十四)

ASP
ASP 3.0高级编程(四十四)

ASP 3.0高级编程(四十)

ASP
ASP 3.0高级编程(四十)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP 3.0高级编程(十四)

ASP
ASP 3.0高级编程(十四)

ASP 3.0高级编程(三十四)

ASP
ASP 3.0高级编程(三十四)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP 3.0高级编程(四十五)

ASP
ASP 3.0高级编程(四十五)

ASP 3.0高级编程(四十三)

ASP
ASP 3.0高级编程(四十三)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《巫师3 狂猎》吊死鬼之树钥匙获得方法

《巫师3 狂猎》吊死鬼之树钥匙获得方法

.Net边学边讲(三)

.Net边学边讲(三)
下拉加载更多内容 ↓