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行标题栏,数据计数num从1开始  
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 			
				 |