Username: Password:

XMLHTTP无刷新自动实时更新数据
来源:网页教学网   作者:网页教学网   发布时间:2008-03-27 10:40:54

传统上,我们浏览网页,假如加入最新的数据。只能是等我们重新向服务器端请求时才能显示出来。但是,对于一些时效性很强的网站,传统的这种做法是不能满足的。

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

demo.htm 前台显示。

以下为引用的内容:

height="23" border="0" cellpadding="1" cellspacing="0"
id="tb">
num1num2

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:22var 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").Valuers.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

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅