|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。精髓|文摘www.yesky.com
转贴-怎样在不革新页面的情形下挪用远程ASP(2000.03.30)
RS手艺的一个详细例子
在后面的帖子中,我先容了RS的基础事情道理,明显假如将RS手艺使用在一
个网站的计划中将会有良多不凡的感化(特别是它的谁人最年夜的长处,能够在不刷
新页面的情形下挪用服务真个代码)。恰是由于这个特性,你就能够象在编写一个
传统的C/S形式的程序一样,对数据库的数据举行处置了(我想人人必定很想晓得
详细应当怎样来完成了,上面将给出一个详细的例子,调试这个破程序几近快把
我给累逝世,呵呵。)
夙昔面的形貌能够看到,要利用RS手艺就必要客户端和服务端满意上面两个
前提:
1。客户端只必要撑持Javaapplet便可
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函数应当是如许的布局:
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中没有利用到subm
it
以是假如你在该页面中间接敲回车键的话甚么都不会呈现,你必需经由过程鼠标单击
谁人"猎取信息"按扭来利用这个部分页面革新手艺。在单击完该按扭后,页面会
有
一段小小的提早(这段工夫内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="猎取信息"
onclick="execAsynch(empLastName.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(&q</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。 |
|