你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
基于Ajax技术Web实时监控系统(三)
 

3.1    客户端

客户端是浏览器,在浏览器中访问服务端htm文件。htm文件采用Ajax技术,网页中嵌入Javascript脚本,调用XMLHttpRequest实时访问数据。Ajax中获取XMLHttpRequest对象的方法[3]

针对Internet Explorer(IE)浏览器:

new ActiveXObject(“Msxml2.XMLHTTP”)

new ActiveXObject(“Microsoft.XMLHTTP”)

针对其他浏览器:

new window.XMLHttpRequest()

对象建立后,就可以利用其方法和属性访问服务器端数据了。网页中的Javascript脚本,可以灵活控制数据的显示。

1)数据的接收和显示

本系统中Web服务器端采集的多路设备的数据,其总路数是不确定的,因为每一路设备都同时工作,所以浏览器端需要根据总路数来增加或者减少显示的行数(这里采用表格显示接收到的数据),并且实现数据在正常范围显示为绿色,其余为红色醒目显示功能。为了提高数据的传输效率,还需要设计合理的数据传输格式。这里约定服务端返回的数据使用“;”号进行分割,第一个数据代表总路数,其后分别代表设备名称、电压值、电流值等。通过Javascript函数setInterval实时刷新网页数据[3]。关键代码如下:

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

function RefreshData() { //异步方式

xmlhttp.Open("GET", "realdata.htm", false);

xmlhttp.Send(null);  //服务器返回的数据

strResult = xmlhttp.responseText;

//将字符串分开,其中arrResult[0]为总路数

arrResult = strResult.split(";");

var NumOfRow=arrResult[0]; //数据总行数

//根据数据的行数对原有表格进行添行和删行

addrows(arrResult[0],myTable.rows.length-1)

//留出第0行标题栏,数据计数num1开始

for (num=1;num<=arrResult[0];num++) {

changetd(num,0,num);

changetd(num,4,arrResult[(num-1)*2+1]); changetd(num,5,arrResult[(num-1)*2+2]);

}

}

setInterval("RefreshData()",500);//每隔500ms刷新数据

changetd函数用于修改表格单元的值,在正常范围以颜色标志数据:

function changetd(r,d,c) {//r:d:c:修改内容

if(测量值在正常范围)

    {myTable.rows(r).cells(d).innerHTML = "<font color=green>"+c+"</font>";}

else

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089