关于页面局部刷新例程

2016-01-29 17:16 5 1 收藏

关于页面局部刷新例程,关于页面局部刷新例程

【 tulaoshi.com - ASP 】

          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就是服务端处理数据的程序了。
好了,其中的好处大家可以自己去
体会。

特别注意,不要改变太多代码,不然很容易出错,毕竟

来源:https://www.tulaoshi.com/n/20160129/1500857.html

延伸阅读
标签: Web开发
以下正文:  程序设计中会经常碰到一种情况,就是事先无法得知用户会需要哪些数据,必须根据用户选择后再从服务 器重新提取数据后反馈给用户。比如一简单的情况,用户选择省份以后,我们立即会在市里边将这个省的 所有市重新显示出来。这种情况一般需要将整个页面刷新后才可以重新读取,但这样不仅效率不高外,也 显得不太优雅。其实...
标签: Web开发
实例解决问题: 希望实现用户在进入系统以后(整个session的时效之内),如果收到新邮件则发出声音提示。 实现思路: 1.首页部分: body onload="init('');" // load时调用init(user); 2.js部分:用XMLHTTP实现页面局部刷新,调用check_mail.jsp对后台数据库进行检索判断并返回结果。 var xmlhttp = new ActiveXObject("Micro...
标签: Web开发
      下面以三个页面分别命名为framedemo.html,top.html,button.html为例来具体说明如何做。       其中framedemo.html由上下两个页面组成,代码如下: 以下是引用片段: !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD TITLE frameDemo /TITLE /...
标签: PHP
  利用"XXXX.htm"和"XXX.php"两个文件来实现数据的刷新 XXXX.htm <head <script // Refresh code r_s = 0; timenow = 0; function calrs() {     d = new Date();     h= d.getHours(); m = d.getMinutes(); s = d.getSeconds();         if( m < 10) m = '0'...
    <input type=button value=刷新 onclick="history.go(0)"     <input type=button value=刷新 onclick="location.reload()"     <input type=button value=刷新 onclick="location=location"     <input type=button value=刷新 onclick="locatio...

经验教程

978

收藏

13
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部