大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> ASP精华文摘-003

ASP精华文摘-003

时间: 2021-07-31 作者:daque

根源: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华文版下调节和测试经过。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.