首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 虚拟主机评测对比
不刷新页面的情况下调用ASP-ASP教程,ASP应用
作者:网友供稿 点击:14
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
rs技术的一个具体例子
  在前面的帖子中,我介绍了rs的基本工作原理,显然如果将rs技术运用在一个网站的设计中将会有很多非凡的作用(尤其是它的那个最大的优点,可以在不刷新页面的情况下调用服务端的代码)。正是因为这个特点,你就可以象在编写一个传统的c/s模式的程序一样,对数据库的数据进行处理了(我想大家一定很想知道具体应该如何来实现了,下面将给出一个具体的例子,调试这个破程序几乎快把我给累死,呵呵。)
  从前面的描述可以看到,要使用rs技术就需要客户端和服务端满足下面两个条件:



1。客户端只需要支持java applet即可



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函数应该是这样的结构:



  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中没有使用到submit所以如果你在该页面中直接敲回车键的话什么都不会出现,你必须通过鼠标单击那个"获取信息"按扭来使用这个局部页面刷新技术。在单击完该按扭后,页面会有一段小小的延迟(这段时间内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>
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Asp.Net下导出/导入规则的Excel(.xls)文件-ASP教程,ASP应用
·中国万网,万网
·中资源
·上海火速
·加拿大中文网
·华夏名网
·世纪东方
·商务中国
·中国E动网
·神话网络
最新文章
·photoshop抠图合成特效:飞出照片相框_photoshop教程
·将升级的windows vista驱动还原到原来的版本_windows vista
·photoshop漫画笔刷绘制非主流照片漫画_photoshop教程
·看域名注册信息判断网赚公司真假_网赚技巧
·找坐标:对网站进行坐标定位_站长心得
·如何增加网站pv_站长心得
·google性格一:对活跃度高的网页收录很快_google推广
·googleadsense容易被k的可能性列表_google推广
·价值数万的googlepr作弊方_google推广
·如何抢占人家的“首要意念”_google推广
相关主题
  • 不刷新页面查询数据库中数据的方法--XML方法-ASP教程,数据库相关
  • 不刷新页面筛选数据库中的数据-ASP教程,数据库相关
  • 不刷新页面筛选数据库中的数据
  • 不刷新页面的情况下调用远程asp 
  • 不刷新页面改变下拉菜单内容
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭