這幾天自己琢磨起來(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í)間,菜鳥(niǎo)?。?/p>
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);