|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。RS手艺的一个详细例子
在后面的帖子中,我先容了RS的基础事情道理,明显假如将RS手艺使用在一个
网站的计划中将会有良多不凡的感化(特别是它的谁人最年夜的长处,能够在不革新
页面的情形下挪用服务真个代码)。恰是由于这个特性,你就能够象在编写一个
传统的C/S形式的程序一样,对数据库的数据举行处置了(我想人人必定很想晓得详细应当怎样来完成了,上面将给出一个详细的例子,调试这个破程序几近快把我给累逝世,呵呵。)
夙昔面的形貌能够看到,要利用RS手艺就必要客户端和服务端满意上面两个前提:
1。客户端只必要撑持Javaapplet便可
2。而服务端只必要撑持ASP便可
换句话说,就是RS手艺是完整自力与扫瞄器的(固然扫瞄器最少必要满意撑持Java
和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函数应当是如许的布局:
functionCallbackFunction(objResult){
//你本人的处置历程
}
个中独一的输出参数objResult就是RS挪用的前往值.
上面我们假定如许一种情形:
用户在扫瞄器中输出了用户的e-mail地点,然后用户分开了e-mail地点输出框
进进接上去的输出历程,这个时分就是RS该上场了,它依据用户输出的地点在
服务真个数据库中查询这个地点,就能够判别出这个用户是不是已存在,然后
把了局前往给客户端,在客户端再利用DHTML手艺在一个叫"ShowResult"的输出框
内里提醒用户之前输出的信息。
functionCallbackFunc(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中没有利用到submit
以是假如你在该页面中间接敲回车键的话甚么都不会呈现,你必需经由过程鼠标单击
谁人"猎取信息"按扭来利用这个部分页面革新手艺。在单击完该按扭后,页面会有
一段小小的提早(这段工夫内javaapplet在背景创建了和服务真个毗连)
然后即刻页面复兴一般的鼠标,你能够在该页面中持续举行其他的操纵。
而不用象一般页面革新时,你只要守候数据。
而info.asp人人一眼就可以够看分明,实在就是一个很复杂的处置字符串的程序。
假如人人如果对DHTML手艺熟习的话,完整能够在客户端完成这些操纵。
至于EmpData.asp就是服务端处置数据的程序了。
好了,个中的优点人人能够本人往
体味。
出格注重,不要改动太多代码,否则很简单堕落,究竟是在利用JavaScript编程
Default.htm文件代码以下:
<HTML>
<HEAD>
<TITLE>RS手艺的完成例子</TITLE>
</HEAD>
<FRAMESETid=fsetrows="70%,30%">
<FRAMEname=mainsrc="main.html">
<FRAMEname=infosrc="info.asp">
</FRAMESET>
</HTML>
Maim.html文件代码以下
<HTML>
<HEAD>
<TITLE>RS手艺的完成例子</TITLE>
</HEAD>
<BODY>
<scriptlanguage="JavaScript"src="http://YourServer/_ScriptLibrary/rs.htm"></script>
<scriptlanguage="JavaScript">
RSEnableRemoteScripting("http://YourServer/_ScriptLibrary");
</script>
<h1>雇员信息</h1>
<hr>
<formname=MyForm>
请输出你想查询的名字:
<br><inputtype=textname="empLastName"size=40>
<inputtype=buttonname=btnExecutestyle="width=150"
value="猎取信息"
>
</form>
<hr>
<SCRIPTLANGUAGE="javascript">
varserverURL="http://YourServer";
varpageURL="/batman/EmpData.asp";
functionrefreshPage(co)
{
if(co.status!=0){
alert("产生非常毛病
"+
message);
}
strText=co.return_value;
top.info.location="info.asp?info="+escape(strText);
}
functionexecAsynch(empLastName)
{
RSExecute(serverURL+pageURL,"GetEmpInfoAsArray",
empLastName,refreshPage);
}
</SCRIPT>
</BODY>
</HTML>
info.asp文件代码
<HTML>
<BODY>
<%
Response.WriteRequest.ServerVariables("REMOTE_USER")
strText=Request.QueryString("info")
IfstrText=""ThenResponse.End
arrData=split(strText,"|")
arrLabels=split("职工,头衔,乡村,雇佣日期",",")
%>
<tableborder=0>
<%
fori=0to3
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%>
<SCRIPTRUNAT=SERVERLanguage=javascript>
<!--#INCLUDEVIRTUAL="/_ScriptLibrary/RS.ASP"-->
functionDescription()
{
this.GetEmpInfoAsArray=DoGetData;
}
public_description=newDescription();
functionDoGetData(empName)
{
sql="select*from雇员where[名字]="+empName+"";
rst=newActiveXObject("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=newDate(rst.Fields("招聘日期").Value);
strText+=(1+d.getMonth())+"/"+d.getDate()+"/"+d.getYear();
}
returnstrText;
}
</SCRIPT>
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。 |
|