动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章

 不刷新页面的情况下调用ASP

作者来源: 
阅读 1423 人次 , 2006-4-18 3:19:00 

如果将RS技术运用在一个网站的设计中将会有很多作用(尤其是它的那个最大的优点,可以在不刷新页面的情况下调用服务端的代码)。正是因为这个特点,你就可以象在编写一个传统的C/S模式的程序一样,对数据库的数据进行处理了。 从前面的描述可以看到,要使用RS技术就需要客户端和服务端满足下面两个条件:客户端只需要支持Java applet即可和服务端只需要支持ASP即可。 

下面还是让具体的代码来发言:

(请在使用代码前在你的服务器上建立一个叫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> 

  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:ASP记录论坛用户密码(dvbbs,leadbbs等)
· 下一篇:ASP中的主页广告轮换技巧(1)
· C#、Java之比较(2)
· ASP实用大全-实战ASP(8)
· 用几行Asp代码实现防止表单多次被提交
· Microsoft 脚本编码器Script Encoder介绍(2)全中文
· C#里操作时间的例子! 


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077