ASP 3.0進階編程(四十五)
來源:互聯網
上載者:User
非同步執行是指在後台檢索資料,可以在全部資料返回之前在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屬性,其最大優點是:在使用者可以看到的網頁中不會出現串連的細節。考慮下面的對象定義: