当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP 3.0高级编程(四十五)

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

ASP 3.0高级编程(四十五)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 32 ::
收藏到网摘: n/a

异步执行是指在后台检索数据,可以在全部数据返回之前在Web页面上使用已经得到的数据。虽然可能需要的是全部的数据,但异步工作至少可提前开始处理数据。也可让用户先看到某些内容,这使得Web站点看上去响应能力更强。
与TDC类似,RDS数据控件可以通过设置OBJECT标记的参数或编写代码来设置其属性。下面举一个例子:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
<PARAM NAME="Connect" VALUE="DSN=pubs">
<PARAM NAME="Server" VALUE="W2000">
<PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
</OBJECT>
等效于:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
</OBJECT>

<SCRIPT LANGUAGE=JScript>

function window.onload()
{
dsoAuthors.Connect = "DSN=pubs";
dsoAuthors.Server = "W2000";
dsoAuthors.SQL = "SELECT * FROM Authors";
dsoAuthors.Refresh();
}
</SCRIPT>
这里为Connect参数使用了一个DSN,因为这非常适合该页面,但也可以是任何有效的ADO连接字符串。
URL是ADO 2.5版提供的新特性,允许使用一个文件作为数据源。该文件可以有两种格式:一种是用Recordset.Save方法保存的记录集;另一种是一个ASP页面,它创建一个记录集,然后将其保存在一个流中。代码如下:
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HEIGHT="0">
<PARAM NAME="URL" VALUE="DataPage.asp">
</OBJECT>
文件DataPage.asp包含以下VBScript代码:
<%
Dim rsData
Set rsData = Server.CreateObject("ADODB.Recordset")
rsData.Open "SELECT * FROM Authors", strConn
rsData.Save Response, adPersistXML
rsData.Close
Set rsData = Nothing
%>
这只是创建了一个记录集,然后用Save方法将记录集以XML格式保存到Response对象中。在ADO的早期版本中,只能将记录集存为物理文件,而ADO 2.5版本能够直接将其存为流。这个ASP页面的结果就是XML格式的记录集。下一章将研究关于流和XML数据的所有主题。
使用URL属性优于使用Connect和SQL属性,其最大优点是:在用户可以看到的网页中不会出现连接的细节。考虑下面的对象定义:
<OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HIGHT="0">
<PARAM NAME="Connect" VALUE="DSN=pubs">
<PARAM NAME="Server" VALUE="W2000">
<PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
</OBJECT>
第一行显示了连接的细节。此时能够看到DSN为pubs,并且我们选择了authors表的全部列。这无疑为电脑黑客进入Web站点提供了潜在的路径,因为他们知道了服务器的名称以及数据库的一些细节。现在,考虑一下使用URL属性的情况:
<OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="dsoAuthors" WIDTH="0" HIGHT="0">
<PARAM NAME="URL" VALUE="DataPage.asp">
</OBJECT>
现在,用户所见到的是一个ASP网页的URL地址,没有任何有关服务器和数据库的详细信息。
使用CONNECT/SQL属性的方法,用户可以清楚地见到连接的细节,而使用URL所见的却是数据。从这一点上来说,消除了一个安全问题。
在脚本中设置RDS数据控件的属性时,必须使用Refesh方法,如下所示:
<SCRIPT LANGUAGE=JScript>

function window.onload()
{
dsoAuthors.URL="DataPage.asp";
dosAuthors.Refresh();
}
</SCRIPT>
这将强迫数据控件使用新的属性值,并重新从数据提供者那里检索数据。除了Refresh方法外,RDS数据控件还有许多其他方法,如表10-3所示:
表10-3 RDS数据控件的方法及说明
方 法
说 明

Cancel
取消任何异步操作

CancelUpdate
取消对数据的任何修改

CreateRecordset
创建一个空的记录集,这允许在本地创建新的数据集

MoveFirst
移到第一条记录

MoveLast
移到最后一条记录

MoveNext
移到下一条记录

MovePrevious
移到上一条记录

Refresh
更新来自数据存储的数据

Reset
应用过滤或排序条件

SubmitChanges
将所有未解决的修改送回数据存储

在本章后面,会见到大多数方法的使用情况。
3. MSHTML数据控件
微软HTML(MSHTML)数据控件比较特别的地方在于:MSHTML是IE的一个组成部分,并能提供一个基于HTML文档的数据源。虽然本质上MSHTML并不是为数据存储使用的一种格式,但如果确实有许多包含某些数据格式的HTML网页,MSHTML可能会变得较为有用。