日期:2011-10-17  浏览次数:21078 次

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

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

<scriptlanguage="JavaScript">
functionGetResult()
{
/*
 *---------------GetResult()-----------------
 *GetResult()
 *功能:通过XMLHTTP发送请求,返回结果.
 *参数:str,字符串,发送条件.
 *实例:GetResult();
 *---------------GetResult()-----------------
 */
   varoBao=newActiveXObject("Microsoft.XMLHTTP");
   //特殊字符:+,%,&,=,?等的传输解决办法.字符串先用escape编码的.
   //Update:2004-6-112:22
   oBao.open("POST","Server.asp",false);
   oBao.send();

   varstrResult=unescape(oBao.responseText);

   vararrResult=strResult.split("###");
   RemoveRow();
   
   for(vari=0;i<arrResult.length;i++)
   {
       arrTmp=arrResult[i].split("@@@");
       num1=arrTmp[0];
       num2=arrTmp[1];
       row1=tb.insertRow();
       cell1=row1.insertCell();
       cell1.innerText=num1;
       cell2=row1.insertCell();
       cell2.innerText=num2;
   }
}

functionRemoveRow()
{
   
   variRows=tb.rows.length;
   for(vari=0;i<iRows-1;i++)
   {
       tb.deleteRow(1);
   }
}

functionMyShow()
{

   timer=window.setInterval("GetResult()",2000);
}
</script>

<body>
<p>
</p>
<tablewidth="47%"height="23" border="0"cellpadding="1"cellspacing="0"id="tb">
 <tr>
   <td>num1</td>
   <td>num2</td>
 </tr>
</table>


<%@Language="JavaScript"%>
<%
functionOpenDB(sdbname)
{
/*
 *---------------OpenDB(sdbname)-----------------
 *OpenDB(sdbname)
 *功能:打开数据库sdbname,返回conn对象.
 *参数:sdbname,字符串,数据库名称.
 *实例:varconn=OpenDB("database.mdb");
 *---------------OpenDB(sdbname)-----------------
 */
   varconnstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(sdbname);
   varconn=Server.CreateObject("ADODB.Connection");
   conn.Open(connstr);
   returnconn;
}
varsResult=newArray();
varoConn=OpenDB("data.mdb");
//特殊字符:+,%,&,=,?等的传输解决办法.客户端字符是经过escape编码的
//所以服务器端先要经过unescape解码.
//Update:2004-6-112:22
varsql="selectnum1,num2fromnumsorderbyid";
varrs=oConn.Execute(sql);
while(!rs.EOF)
{
   
   sResult[sResult.length]=rs("num1").Value+"@@@"+rs("num2").Value
   rs.MoveNext();
}

Response.Write(escape(sResult.join("###")));
%>



表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