东莞电脑批发网 - 东莞地区最大的电脑批发网

XMLHTTP无刷新自动实时更新数据
发布人:gxy   点击数:526   2008-5-7 9:32:05
    传统上,我们浏览网页,如果加入最新的数据。只能是等我们重新向服务器端请求时才能显示出来。但是,对于一些时效性很强的网站,传统的这种做法是不能满足的。

我们可以让程序自动刷新,定时向服务器请求数据。5秒取一次数据,10秒取一次数据。利用XMLHTTP发出请求并取得数据。传到客户端,客户端重新组织并显示数据。

demo.htm 前台显示.

<script language="javascript">

function GetResult()

{

/*

*--------------- GetResult() -----------------

* GetResult()

* 功能:通过XMLHTTP发送请求,返回结果.

* 参数:str,字符串,发送条件.

* 实例:GetResult();

*--------------- GetResult() -----------------

*/

var oBao = new ActiveXObject("Microsoft.XMLHTTP");

//特殊字符:+,%,&,=,?等的传输解决办法.字符串先用escape编码的.

//Update:2004-6-1 12: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");

*--------------- 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-1 12:22

var sql = "select num1,num2 from 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,文本

测试数据

id num1 num2

1 20.70 20.810

2 10.5 20.5

3 12.3 300

4 132 323

5 563 56

6 20 10





我来说两句
匿名发表
小提示:您发表的言论后果负责,请各位遵守法纪注意语言文明

赞助商广告
金吉防辐射服装专卖
金吉防辐射服装专卖,厂家直接发货,权威认证,衣服电话防伪,质量保证。 www.taojincn.com

世新虚拟主机、域名低价销售。
庆新年迎新春,世新虚拟主机、域名低价销售。 www.dgdns.net

虎门(长安/厚街/沙田)网络公司
专业SEO:网站建设,网站推广,网站优化. 做百度,雅虎,google关键词优化推广免费送网站!

世新电脑配件批发及组装零售
主要批发电脑配件 :硬盘 CPU 内存 显示器 主板 显卡 光驱 网络产品 机箱电源 服务器机箱 东莞地区送货上门,货运货到付款或网上打款

易信达进销存管理软件
易信达进销存系列管理软件

AOC(冠捷)16.6寸新上市
AOC(冠捷)16.6寸新上市.1500:1 小巧方便携带 靓价:710元 AOC 919SW 8000:1 19寸宽屏液晶显示器 靓价:850 AOC 915SW 5000:1 19寸宽屏液晶显示器 靓价: 865

成为虎门OK网会员做本地
虎门OK网是虎门最大的信息网站,每日集中在写字楼、工厂、商家等一大批高消费群关注及使用信息查询等服务。经统计至2008年4月每天在线看信息超过11000人,虎门OK网----被评为虎门最在价值的商业网站。

中科世新电脑超值特价
索可17寸纯平 特价 300 一年保修,三个月包换 华硕18XDVD 光驱 特价 117 一年保修,三个月包换 七彩虹3850/512M显卡 特价 475 一年保修,七天包换 易拓160G/串口蓝德代理特价 245 三年保修详情请进入查看!!!

新闻资讯 | 电脑技术 | 批发报价 | 人才市场 | 特价区 | 关于我们 | 广告业务 | 免责声明
东莞电脑批发网  版权所有  2004-2008  All Rights Reserved.
电话:0769-85189915  传真:0769-85189925  咨询信箱:gxy#dgdns.net
第一QQ群:33853133(已满)  第二QQ群:1796060  第三QQ群:1796099  第四QQ群:63034897
地址:东莞市虎门镇太平广场花园2162室 邮编:523900  粤ICP备06013379号