這幾天自己琢磨起來(lái)javascript,以前都是看看沒(méi)有實(shí)戰(zhàn)過(guò),現(xiàn)在覺(jué)得實(shí)戰(zhàn)起來(lái)果然錯(cuò)誤多多,以后要不斷總結(jié)錯(cuò)誤,關(guān)鍵可以減少調(diào)試時(shí)間,菜鳥啊:
1.js通常有一個(gè)地方錯(cuò)誤了, 下邊的函數(shù)都不會(huì)再繼續(xù)執(zhí)行啦(本來(lái)覺(jué)得很正常的事,但是...)
2.為什么open()請(qǐng)求服務(wù)器的時(shí)候,請(qǐng)求的servlet后邊要加一個(gè)參數(shù)變化,告知服務(wù)器這是一個(gè)新的請(qǐng)求???否則在IE8中請(qǐng)求失敗
var bojingNum = 0;
//定義一個(gè)變量用來(lái)存儲(chǔ)xmlHttpRequest對(duì)象
var xmlHttp=null;
//該函數(shù)用于創(chuàng)建一個(gè)xmlHttpRequest對(duì)象
function createXMLHttpRequest()
{
if (window.ActiveXObject)//ActiveXObject這個(gè)對(duì)象是IE瀏覽器提供的控件,所以有的網(wǎng)銀只支持這樣的控件的IE瀏覽器
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE瀏覽器生成的對(duì)象
} else if (window.XMLHttpRequest)//除了IE外的其他瀏覽器
{
xmlHttp = new XMLHttpRequest();
}
}
//這是一個(gè)通過(guò)ajax刷新統(tǒng)計(jì)圖的方法
function autoFlush()
{
//創(chuàng)建日期變量時(shí)間變量
var tempTime = new Date();
var tempParameter = tempTime.getTime();
//創(chuàng)建一個(gè)xmlHttpRequest對(duì)象
createXMLHttpRequest();
if(xmlHttp!=null)
{
//這里放置一個(gè)時(shí)間參數(shù)是為了讓服務(wù)器知道這是一個(gè)新的請(qǐng)求
xmlHttp.open("GET", "SerialDataSvt?tmd="+tempParameter);
//將狀態(tài)觸發(fā)器綁定到一個(gè)函數(shù)
xmlHttp.onreadystatechange=processor;
//請(qǐng)求發(fā)送
xmlHttp.send(null);
}
}
//處理從服務(wù)器返回的xml文檔
function processor()
{
//定義一個(gè)變量用于存儲(chǔ)從服務(wù)器返回的結(jié)果
var result;
if(xmlHttp.readyState==4)//如果響應(yīng)完成
{
if(xmlHttp.status==200)//如果返回成功
{
//取出服務(wù)器返回的xml文檔的所有counter標(biāo)簽的子節(jié)點(diǎn)
result = xmlHttp.responseXML.getElementsByTagName("data");//alert(result);
//解析xml中的數(shù)據(jù)并更新統(tǒng)計(jì)圖狀態(tài)
for(var i = 0 ; i < result.length; i++)
{
//用于統(tǒng)計(jì)數(shù)據(jù)更新統(tǒng)計(jì)圖片狀態(tài)
var id =result[i].getAttribute("id");//alert(id);
var dir =result[i].getAttribute("dir"); //alert(dir);
var datas =xmlHttp.responseXML.getElementsByTagName("dataContent")[0].childNodes[0].nodeValue;
var addTime =xmlHttp.responseXML.getElementsByTagName("addTime")[0].childNodes[0].nodeValue;
if(datas.substring(17,18)=="1")
{
document.getElementById("yujing"+(i+1)).innerHTML="<embed src='video/wartgroud.mp3' type=audio/x-ms-wma autostart='true' loop='true'>報(bào)警中
</embed> ";
document.getElementById("yujingPic"+(i+1)).style.display = 'block';
bojingNum++;
document.getElementById("yujingNum"+(i+1)).innerHTML="預(yù)警次數(shù):"+bojingNum;
}
else
{
document.getElementById("yujing"+(i+1)).innerHTML="暫無(wú)報(bào)警
";
document.getElementById("yujingPic"+(i+1)).style.display = 'none';
}
document.getElementById("n_nodeID"+i).innerHTML= id+dir;
document.getElementById("n_nodeData"+i).innerHTML= datas;
document.getElementById("n_nodeTime"+i).innerHTML= addTime;
document.getElementById("s_nodeID"+i).innerHTML= id+dir;
document.getElementById("s_nodeData"+i).innerHTML= datas;
document.getElementById("s_nodeTime"+i).innerHTML= addTime;
document.getElementById("e_nodeID"+i).innerHTML= id+dir;
document.getElementById("e_nodeData"+i).innerHTML= datas;
document.getElementById("e_nodeTime"+i).innerHTML= addTime;
document.getElementById("w_nodeID"+i).innerHTML= id+dir;
document.getElementById("w_nodeData"+i).innerHTML= datas;
document.getElementById("w_nodeTime"+i).innerHTML= addTime;
}
}
}
}
//每隔一秒就執(zhí)行一次autoFlush方法
setInterval(autoFlush, 2000);
//定義一個(gè)變量用來(lái)存儲(chǔ)xmlHttpRequest對(duì)象
var xmlHttp=null;
//該函數(shù)用于創(chuàng)建一個(gè)xmlHttpRequest對(duì)象
function createXMLHttpRequest()
{
if (window.ActiveXObject)//ActiveXObject這個(gè)對(duì)象是IE瀏覽器提供的控件,所以有的網(wǎng)銀只支持這樣的控件的IE瀏覽器
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE瀏覽器生成的對(duì)象
} else if (window.XMLHttpRequest)//除了IE外的其他瀏覽器
{
xmlHttp = new XMLHttpRequest();
}
}
//這是一個(gè)通過(guò)ajax刷新統(tǒng)計(jì)圖的方法
function autoFlush()
{
//創(chuàng)建日期變量時(shí)間變量
var tempTime = new Date();
var tempParameter = tempTime.getTime();
//創(chuàng)建一個(gè)xmlHttpRequest對(duì)象
createXMLHttpRequest();
if(xmlHttp!=null)
{
//這里放置一個(gè)時(shí)間參數(shù)是為了讓服務(wù)器知道這是一個(gè)新的請(qǐng)求
xmlHttp.open("GET", "SerialDataSvt?tmd="+tempParameter);
//將狀態(tài)觸發(fā)器綁定到一個(gè)函數(shù)
xmlHttp.onreadystatechange=processor;
//請(qǐng)求發(fā)送
xmlHttp.send(null);
}
}
//處理從服務(wù)器返回的xml文檔
function processor()
{
//定義一個(gè)變量用于存儲(chǔ)從服務(wù)器返回的結(jié)果
var result;
if(xmlHttp.readyState==4)//如果響應(yīng)完成
{
if(xmlHttp.status==200)//如果返回成功
{
//取出服務(wù)器返回的xml文檔的所有counter標(biāo)簽的子節(jié)點(diǎn)
result = xmlHttp.responseXML.getElementsByTagName("data");//alert(result);
//解析xml中的數(shù)據(jù)并更新統(tǒng)計(jì)圖狀態(tài)
for(var i = 0 ; i < result.length; i++)
{
//用于統(tǒng)計(jì)數(shù)據(jù)更新統(tǒng)計(jì)圖片狀態(tài)
var id =result[i].getAttribute("id");//alert(id);
var dir =result[i].getAttribute("dir"); //alert(dir);
var datas =xmlHttp.responseXML.getElementsByTagName("dataContent")[0].childNodes[0].nodeValue;
var addTime =xmlHttp.responseXML.getElementsByTagName("addTime")[0].childNodes[0].nodeValue;
if(datas.substring(17,18)=="1")
{
document.getElementById("yujing"+(i+1)).innerHTML="<embed src='video/wartgroud.mp3' type=audio/x-ms-wma autostart='true' loop='true'>報(bào)警中

document.getElementById("yujingPic"+(i+1)).style.display = 'block';
bojingNum++;
document.getElementById("yujingNum"+(i+1)).innerHTML="預(yù)警次數(shù):"+bojingNum;
}
else
{
document.getElementById("yujing"+(i+1)).innerHTML="暫無(wú)報(bào)警

document.getElementById("yujingPic"+(i+1)).style.display = 'none';
}
document.getElementById("n_nodeID"+i).innerHTML= id+dir;
document.getElementById("n_nodeData"+i).innerHTML= datas;
document.getElementById("n_nodeTime"+i).innerHTML= addTime;
document.getElementById("s_nodeID"+i).innerHTML= id+dir;
document.getElementById("s_nodeData"+i).innerHTML= datas;
document.getElementById("s_nodeTime"+i).innerHTML= addTime;
document.getElementById("e_nodeID"+i).innerHTML= id+dir;
document.getElementById("e_nodeData"+i).innerHTML= datas;
document.getElementById("e_nodeTime"+i).innerHTML= addTime;
document.getElementById("w_nodeID"+i).innerHTML= id+dir;
document.getElementById("w_nodeData"+i).innerHTML= datas;
document.getElementById("w_nodeTime"+i).innerHTML= addTime;
}
}
}
}
//每隔一秒就執(zhí)行一次autoFlush方法
setInterval(autoFlush, 2000);