您当前的位置: 首页 > 网站编程 > ASP教程 > asp自动实时无刷新更新数据

asp自动实时无刷新更新数据

作者:不详 来源:网络 发布时间: 2011-10-06 14:04 点击:
我们可以让程序自动刷新.定时向服务器请求数据.5秒取一次数据,10秒取一次数据. 利用XMLHTTP发出请求并取得数据.传到客户端,客户端重新组织并显示数据. demo.htm前台显示. script language=JavaScript function GetResult() { /* *---------------GetResult()----------

asp自动实时无刷新更新数据

  我们可以让程序自动刷新.定时向服务器请求数据.5秒取一次数据,10秒取一次数据.
  
  利用XMLHTTP发出请求并取得数据.传到客户端,客户端重新组织并显示数据.
  
  demo.htm前台显示.
  
  <script language="JavaScript">
  
  function GetResult()
  
  {
  
  /*
  
  *---------------GetResult()-----------------
  
  *GetResult()
  
  *功能:通过XMLHTTP发送请求,返回结果.
  
  *参数:str,字符串,发送条件.
  
  *实例:GetResult();
  
  *author:wanghr100(灰豆宝宝.net)
  
  *update:2004-5-2719:02
  
  *---------------GetResult()-----------------
  
  */
  
  var oBao=new ActiveXObject("Microsoft.XMLHTTP");
  
  //特殊字符:+,%,&,=,?等的传输解决办法.字符串先用escape编码的.
  
  //Update:2004-6-112:22
  
  oBao.open("POST","Server.asp",false);
  
  oBao.send();
  
  //服务器端处理返回的是经过escape编码的字符串.
  
  var strResult=unescape(oBao.responseText);
  
  //将字符串分开.
  
  var arrResult=strResult.split("###");
  
  RemoveRow();//删除以前的数据.
  
  //将取得的字符串分开,并写入表格中.
  
  for(var i=0;i<arrResult.length;i++)
  
  {
  
  arrTmp=arrResult[i].split("@@@");
  
  num1=arrTmp[0];//字段num1的值
  
  num2=arrTmp[1];//字段num2的值
  
  row1=tb.insertRow();
  
  cell1=row1.insertCell();
  
  cell1.innerText=num1;
  
  cell2=row1.insertCell();
  
  cell2.innerText=num2;
  
  }
  
  }
  
  function RemoveRow()
  
  {
  
  //保留第一行表头,其余数据均删除.
  
  var iRows=tb.rows.length;
  
  for(var i=0;i<iRows-1;i++)
  
  {
  
  tb.deleteRow(1);
  
  }
  
  }
  
  function MyShow()
  
  {
  
  //2秒自动刷新一次,2秒取得一次数据.
  
  timer=window.setInterval("GetResult()",2000);
  
  }
  
  </script>
  
  <body onload="MyShow()">
  
  <p>
  
  </p>
  
  <table width="47%" height="23" border="0" cellpadding="1" cellspacing="0" id="tb">
  
  <tr>
  
  <td>num1</td>
  
  <td>num2</td>
  
  </tr>
  
  </table>
  
  Server.asp后台读取数据
  
  <%@Language="JavaScript"%>
  
  <%
  
  function OpenDB(sdbname)
  
  {
  
  /*
  
  *---------------OpenDB(sdbname)-----------------
  
  *OpenDB(sdbname)
  
  *功能:打开数据库sdbname,返回conn对象.
  
  *参数:sdbname,字符串,数据库名称.
  
  *实例:var conn=OpenDB("database.mdb");
  
  *author:wanghr100(灰豆宝宝.net)
  
  *update:2004-5-128:18
  
  *---------------OpenDB(sdbname)-----------------
  
  */
  
  var connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(sdbname);
  
  var conn=Server.CreateObject("ADODB.Connection");
  
  conn.Open(connstr);
  
  return conn;
  
  }
  
  var sResult=new Array();
  
  var oConn=OpenDB("data.mdb");
  
  //特殊字符:+,%,&,=,?等的传输解决办法.客户端字符是经过escape编码的
  
  //所以服务器端先要经过unescape解码.
  
  //Update:2004-6-112:22
  
  var sql="select num1,num2from nums order by id";
  
  var rs=oConn.Execute(sql);
  
  while(!rs.EOF)
  
  {
  
  //一条记录用"###"隔开.每列数据用"@@@"隔开.这是以只有两个列数据的情况.
  
  sResult[sResult.length]=rs("num1").Value+"@@@"+rs("num2").Value
  
  rs.MoveNext();
  
  }
  
  //escape解决了XMLHTTP。中文处理的问题.
  
  Response.Write(escape(sResult.join("###")));
  
  %>
  
  数据库data.mdb
  
  表nums
  
  id,自动编号
  
  num1,文本
  
  num2,文本

分享到:
本文"asp自动实时无刷新更新数据"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4