我们浏览网页,如果加入最新的数据.只能是等我们重新向服务器端请求时才能显示出来.但是,对于一些时效性很强的网站.传统的这种做法是不能满足的.
我们可以让程序自动刷新.定时向服务器请求数据.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
|