人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

ASP精華文摘-003

ASP精華文摘-003

更新時間:2022-05-30 文章作者:未知 信息來源:網絡 閱讀次數:

來源:www.yesky.com


轉貼-如何在不刷新頁面的情況下調用遠程ASP (2000.03.30)

RS技術的一個具體例子
在前面的帖子中,我介紹了RS的基本工作原理,顯然如果將RS技術運用在一
個網站的設計中將會有很多非凡的作用(尤其是它的那個最大的優點,可以在不刷
新頁面的情況下調用服務端的代碼)。正是因為這個特點,你就可以象在編寫一個
傳統的C/S模式的程序一樣,對數據庫的數據進行處理了(我想大家一定很想知道
具體應該如何來實現了,下面將給出一個具體的例子,調試這個破程序幾乎快把
我給累死,呵呵。)

從前面的描述可以看到,要使用RS技術就需要客戶端和服務端滿足下面兩個
條件:
1。客戶端只需要支持Java applet即可
2。而服務端只需要支持ASP即可
換句話說,就是RS技術是完全獨立與瀏覽器的(當然瀏覽器至少需要滿足支持Ja
va
和JavaScript),你可以在IE中使用,也可以完全在
NC中使用,這也是區別與RDS技術的一個顯著特點。
在能夠靈活運用RS技術前,先要說明一個問題,就是前面也曾經提到過的"
異步調用”
的問題。也正是因為有異步調用,才能夠實現你只刷新頁面的某一部分而不用刷

整個頁面。
由于它的這個特點,你可以讓服務端來實現在你瀏覽頁面的同時
對你輸入數據的合法性檢查(當然這可以是一系列很復雜的合法性檢查,例如需

將用戶輸入的數據和數據庫內已有的數據進行對比等,這個可不是客戶端的JS能
夠解決的)
然后當服務端返回檢查結果后,你再進行相應的操作(例如彈出一個對話框告訴
用戶
輸入出錯等等)
異步調用時的語法如下:
RSExecute(serverURL, functionname, param_list)
第一個參數是你想調用的asp頁面的完整的URL路徑
第二個參數是你想調用函數的名稱
后面的就是該函數需要的輸入參數了
如果你想調用的函數需要兩個輸入參數的話,就是這樣的寫法:
RSExecute(serverURL, functionname, f_arg_1, f_arg_2)
當進行調用時有兩種寫法,
一種是有返回結果的調用方式:
objResult = RSExecute(serverURL, functionname, f_arg_1, f_arg_2);

另外一種則是沒有返回結果的調用方式:
RSExecute(url, func_name, f_arg_1, f_arg_2, CallbackFunction);
這種調用方式要特別的注意,其中的CallbackFunction是客戶端的一個JS函數
它表示一但RS執行完畢服務端上的調用,就會馬上調用這個函數,并把結果返回
到這個
函數中去。
一個典型的CallbackFunction函數應該是這樣的結構:
function CallbackFunction(objResult) {
//你自己的處理過程
}
其中唯一的輸入參數objResult就是RS調用的返回值.
下面我們假設這樣一種情況:
用戶在瀏覽器中輸入了用戶的e-mail地址,然后用戶離開了e-mail地址輸入

進入接下來的輸入過程,這個時候就是RS該上場了,它根據用戶輸入的地址在
服務端的數據庫中查詢這個地址,就可以判斷出這個用戶是否已經存在,然后
把結果返回給客戶端,在客戶端再使用DHTML技術在一個叫"ShowResult"的輸入框

里面提示用戶以前輸入的信息。
function CallbackFunc(objResult) {
// 提示用戶的信息
window[objResult.context].value = objResult.return_value;
}
而RSExecute()應該這么調用
RSExecute(serverURL, functionname, f_arg_1, CallbackFunc, "ShowResult"
);
不說了,不說了,上面羅嗦了這么多,我想大家也都看得頭大了,下面還是

讓具體的代碼來發言把:
(請在使用代碼前在你的服務器上建立一個叫NW的系統DSN文件,該文件使用了
Northworld即中文ACCESS97自帶的示例數據庫)
下面的例子是這么進行的,default.htm中分為兩禎,在
main.html頁面中使用了RS技術,大家可以注意到在main.html中沒有使用到subm
it
所以如果你在該頁面中直接敲回車鍵的話什么都不會出現,你必須通過鼠標單擊

那個"獲取信息"按扭來使用這個局部頁面刷新技術。在單擊完該按扭后,頁面會

一段小小的延遲(這段時間內java applet在后臺建立了和服務端的連接)
然后馬上頁面回復正常的鼠標,你可以在該頁面中繼續進行其他的操作。
而不必象普通頁面刷新時,你只有等待數據。
而info.asp大家一眼就能夠看明白,其實就是一個很簡單的處理字符串的程序。

如果大家要是對DHTML技術熟悉的話,完全可以在客戶端完成這些操作。
至于EmpData.asp就是服務端處理數據的程序了。
好了,其中的好處大家可以自己去
體會。

特別注意,不要改變太多代碼,不然很容易出錯,畢竟是在使用JavaScript編程


Default.htm文件代碼如下:
<HTML>
<HEAD>
<TITLE>RS技術的實現例子</TITLE>
</HEAD>
<FRAMESET id=fset rows="70%,30%">
<FRAME name=main src="main.html">
<FRAME name=info src="info.asp">
</FRAMESET>
</HTML>

Maim.html文件代碼如下
<HTML>
<HEAD>
<TITLE>RS技術的實現例子</TITLE>
</HEAD>
<BODY>
<script language="JavaScript" src="http://YourServer/_ScriptLibrary/rs
.htm"></script>
<script language="JavaScript">
RSEnableRemoteScripting("http://YourServer/_ScriptLibrary");
</script>
<h1>雇員信息</h1>
<hr>
<form name=MyForm>
請輸入你想查詢的名字:
<br><input type=text name="empLastName" size=40>
<input type=button name=btnExecute style="width=150"
value="獲取信息"
onclick="execAsynch(empLastName.value)">
</form>
<hr>

<SCRIPT LANGUAGE="javascript">
var serverURL = "http://YourServer";
var pageURL = "/batman/EmpData.asp";

function refreshPage(co)
{
if (co.status != 0) {
alert("發生異常錯誤\n" +
message);
}
strText = co.return_value;
top.info.location = "info.asp?info=" + escape(strText);
}
function execAsynch(empLastName)
{
RSExecute(serverURL+pageURL, "GetEmpInfoAsArray",
empLastName, refreshPage);
}
</SCRIPT>
</BODY>
</HTML>

info.asp文件代碼
<HTML>
<BODY>
<%
Response.Write Request.ServerVariables("REMOTE_USER")

strText = Request.QueryString("info")
If strText = "" Then Response.End
arrData = split(strText, "|")
arrLabels = split("職工,頭銜,城市,雇傭日期", ",")
%>
<table border=0>
<%
for i=0 to 3
Response.Write "<tr>"
Response.Write "<td><b>" & arrLabels(i) & "</b></td>"
Response.Write "<td><i>" & arrData(i) & "</i></td>"
next
%>
</table>
</BODY>
</HTML>

EmpData.asp文件
<%@ LANGUAGE=VBSCRIPT %>
<% RSDispatch %>

<SCRIPT RUNAT=SERVER Language=javascript>
<!--#INCLUDE VIRTUAL="/_ScriptLibrary/RS.ASP"-->

function Description()
{
this.GetEmpInfoAsArray = DoGetData;
}
public_description = new Description();


function DoGetData(empName)
{
sql = "select * from 雇員 where [名字]='" + empName + "'";

rst = new ActiveXObject("ADODB.Recordset");
rst.CursorLocation = 3;

rst.Open(sql, "NW");
i = 0;
strText = "";

if (rst.RecordCount == 1) {
strText += rst.Fields("雇員ID").Value + " - " +
rst.Fields("尊稱").Value + " " +
rst.Fields("姓氏").Value + " " +
rst.Fields("名字").Value;
strText += "|";
strText += rst.Fields("頭銜").Value;
strText += "|";
strText += rst.Fields("城市").Value + " " +
rst.Fields("地區").Value + ", " +
rst.Fields("國家").Value;
strText += "|";
d = new Date(rst.Fields("雇用日期").Value);
strText += (1+d.getMonth()) + "/" + d.getDate() + "/" +
d.getYear();
}
return strText;
}
</SCRIPT>
=======================================================================================================================================
轉貼-關于資料上傳的問題 (2000.03.29)

關于資料上傳的問題

需要一服務器端控件,如SAFileUP(http://www.serverpages.com/upload )等,

也可以自己用VB寫: 編寫Web方式上載文件的ASP組件

---- 基于Web方式上載文件,要遵從RFC1867標準。但IIS沒有提供這方面的支持
。雖然可以從Internet上下載這方面的ASP組件,但大多都是試用版,有使用時間
的限制;并且,功能上也不能完全滿足自己的要求。我們可以編寫自己的ASP組件
,使之適合自己的應用系統的需求。

---- 我們假設有如下的一個上載文件的.html文件,它被命名為demo.htm:

< HTML >
< BODY >
< FORM method="post" enctype=
"multipart/form-data" action="upload.asp" >
< input type=text name="text1" >< BR >
< input type=file name="file1" >< BR >
< input type=submit value="上載" >
< /FORM >
< /BODY >
< /HTML >
---- 按照RFC1867標準,demo.htm傳到服務器端的二進制數據具有類似的如下格

式:

-----------------------------5fi25134734389
Content-Disposition: form-data; name="text1"

Text test
-----------------------------5fi25134734389--
Content-Disposition: form-data;
name="file1"; filename="E:\GIF\girl.gif"
Content-Type: image/gif

GIF89a? ????嚕鄛}}^^^υ,?
-----------------------------5fi25134734389
---- 其中, 類似于"-----------------------------5fi25134734389”的這一
段字符串我們稱之為"定界符”。我們看到,demo.htm文件中的Form元素"text
1”,"file1”出現在定界符后的"name=”標記處;對text1而言,"name=”標
記后緊接兩對回車換行符(chr(13)&chr(10)&chr(13)&chr(10))即是客戶端輸入
的值,該值結束時跟一對回車換行符和一個定界符;對file1而言,"name=”標
記后的"filename=” 標記指出了客戶端上載的文件的路徑和文件名,下一行指
出了文件的類型,后跟兩對回車換行符表示文件數據的開始,文件數據結束時跟
一對回車換行符和一個定界符。

---- 下面,我們以VB6.0中文版環境為例,講述如何編寫上載文件的ASP組件:

---- 1. 進入VB時,選擇工程類型為ActiveX DLL。

---- 2. 在工程窗口中選擇工程,在屬性窗口中給工程重命名,如"Huang”;

在工程窗口中選擇類模塊"Class1”, 在屬性窗口中將其重命名,如"Upload
File”,并且,將Instancing屬性設置為"5-MultiUse”。
---- 3. 選擇VB菜單"工程—— >引用—— >Microsoft Active Server Pages
Object Library”,單擊"確定”。

---- 4. 編寫類模塊,代碼 Zip 2KB

---- 對存入文件的目標目錄,要有寫入的權限。

---- 對OnStartPage過程的說明:當客戶請求一個基于ASP的Web文件時,Web 服

務器會調用該ASP文件上所有ASP組件的OnStartPage方法。Web開發者可以在OnSt

artPage過程中訪問ASP的內建組件。

---- 5.選擇"文件—— >生成Huang.DLL”, 生成Huang.DLL。如果VB就在IIS

服務器上,則VB會自動注冊該組件;否則,把Huang.DLL拷貝到IIS服務器所在的

Windows NT目錄下,運行"Regsrv32 Huang.DLL”注冊該組件。

---- 至此,文件上載的ASP組件編寫并注冊完成。

---- 編寫upload.asp文件如下:

< %@ Language=VBScript % >
< HTML >
< BODY >
< %
Dim txtValue

Set obj = Server.CreateObject("Huang.UploadFile")
txtValue = obj.GetTheValue("text1")
Response.Write( "text1的輸入值是: " & txtValue)
Response.Write "< P > < /p >"
Response.Write "選擇的文件已經上載到服務器!"
obj.SaveTheFile "file1", "c:\test"
% >
< /BODY >
< /HTML >
---- 上述例子在VB6.0中文版和IIS4.0中文版下調試通過。

代碼可到:http://www.ccw.com.cn/99/tips/9905/052601-06.zip 下載。


---- 基于Web方式上載文件,要遵從RFC1867標準。但IIS沒有提供這方面的支持
。雖然可以從Internet上下載這方面的ASP組件,但大多都是試用版,有使用時間
的限制;并且,功能上也不能完全滿足自己的要求。我們可以編寫自己的ASP組件
,使之適合自己的應用系統的需求。

---- 我們假設有如下的一個上載文件的.html文件,它被命名為demo.htm:

< HTML >
< BODY >
< FORM method="post" enctype=
"multipart/form-data" action="upload.asp" >
< input type=text name="text1" >< BR >
< input type=file name="file1" >< BR >
< input type=submit value="上載" >
< /FORM >
< /BODY >
< /HTML >
---- 按照RFC1867標準,demo.htm傳到服務器端的二進制數據具有類似的如下格
式:

-----------------------------5fi25134734389
Content-Disposition: form-data; name="text1"

Text test
-----------------------------5fi25134734389--
Content-Disposition: form-data;
name="file1"; filename="E:\GIF\girl.gif"
Content-Type: image/gif

GIF89a? ????嚕鄛}}^^^υ,?
-----------------------------5fi25134734389
---- 其中, 類似于"-----------------------------5fi25134734389”的這一
段字符串我們稱之為"定界符”。我們看到,demo.htm文件中的Form元素"text
1”,"file1”出現在定界符后的"name=”標記處;對text1而言,"name=”標
記后緊接兩對回車換行符(chr(13)&chr(10)&chr(13)&chr(10))即是客戶端輸入
的值,該值結束時跟一對回車換行符和一個定界符;對file1而言,"name=”標
記后的"filename=” 標記指出了客戶端上載的文件的路徑和文件名,下一行指
出了文件的類型,后跟兩對回車換行符表示文件數據的開始,文件數據結束時跟
一對回車換行符和一個定界符。

---- 下面,我們以VB6.0中文版環境為例,講述如何編寫上載文件的ASP組件:


---- 1. 進入VB時,選擇工程類型為ActiveX DLL。

---- 2. 在工程窗口中選擇工程,在屬性窗口中給工程重命名,如"Huang”;
在工程窗口中選擇類模塊"Class1”, 在屬性窗口中將其重命名,如"Upload
File”,并且,將Instancing屬性設置為"5-MultiUse”。

---- 3. 選擇VB菜單"工程—— >引用—— >Microsoft Active Server Pages
Object Library”,單擊"確定”。

---- 4. 編寫類模塊,代碼 Zip 2KB

---- 對存入文件的目標目錄,要有寫入的權限。

---- 對OnStartPage過程的說明:當客戶請求一個基于ASP的Web文件時,Web 服
務器會調用該ASP文件上所有ASP組件的OnStartPage方法。Web開發者可以在OnSt
artPage過程中訪問ASP的內建組件。

---- 5.選擇"文件—— >生成Huang.DLL”, 生成Huang.DLL。如果VB就在IIS
服務器上,則VB會自動注冊該組件;否則,把Huang.DLL拷貝到IIS服務器所在的
Windows NT目錄下,運行"Regsrv32 Huang.DLL”注冊該組件。

---- 至此,文件上載的ASP組件編寫并注冊完成。

---- 編寫upload.asp文件如下:

< %@ Language=VBScript % >
< HTML >
< BODY >
< %
Dim txtValue

Set obj = Server.CreateObject("Huang.UploadFile")
txtValue = obj.GetTheValue("text1")
Response.Write( "text1的輸入值是: " & txtValue)
Response.Write "< P > < /p >"
Response.Write "選擇的文件已經上載到服務器!"
obj.SaveTheFile "file1", "c:\test"
% >
< /BODY >
< /HTML >
---- 上述例子在VB6.0中文版和IIS4.0中文版下調試通過。


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 甘孜县| 科技| 琼中| 普宁市| 通城县| 瑞丽市| 富阳市| 兴海县| 兴城市| 灵丘县| 武功县| 叶城县| 永寿县| 安阳市| 莒南县| 连江县| 辽阳市| 靖安县| 瓦房店市| 涟源市| 阳高县| 台州市| 尼木县| 禹州市| 招远市| 库伦旗| 乌兰浩特市| 遂昌县| 罗山县| 于都县| 黔江区| 寻乌县| 旌德县| 连山| 大同市| 丽江市| 铜鼓县| 财经| 衡东县| 东乌| 固原市|