當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS實(shí)現(xiàn)無(wú)刷新定時(shí)取數(shù)據(jù)

JS實(shí)現(xiàn)無(wú)刷新定時(shí)取數(shù)據(jù)

2012/11/6 13:09:42作者:佚名來(lái)源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

JS實(shí)現(xiàn)無(wú)刷新定時(shí)取數(shù)據(jù)

【實(shí)例描述】

客戶端在獲取服務(wù)器數(shù)據(jù)后,需要刷新頁(yè)面再重新顯示獲取數(shù)據(jù)后的結(jié)果??紤]頁(yè)面刷新的時(shí)間和效果問(wèn)題,本例學(xué)習(xí)一種新方法,使用Ajax技術(shù)實(shí)現(xiàn)無(wú)刷新定時(shí)取數(shù)據(jù)。

【實(shí)例代碼】

 

<HTML> <HEAD> <TITLE>天氣預(yù)報(bào)-學(xué)無(wú)憂(denvermotorcycleaccidentlawyer.com)</title> <script language="javascript">     var xmlhttp;     function getWeather()     {         //創(chuàng)建異步對(duì)象           xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");         //加載服務(wù)器-注意URL參數(shù)的使用           xmlhttp.Open("GET","http://tw.weather.yahoo.com/ world_single.html?city=10101",false)         //異步對(duì)象事件掛鉤           xmlhttp.onreadystatechange=stateChange;        //發(fā)送請(qǐng)求-無(wú)參數(shù)           xmlhttp.Send(null);     }     function stateChange()     {        if(xmlhttp.readystate==4 && xmlhttp.status==200)        {           //獲取所有返回的數(shù)據(jù)           var data=xmlhttp.responseText;           //過(guò)濾自己需要的數(shù)據(jù)           var begin=data.indexOf("國(guó)際各別都市 start");           var end=data.indexOf("國(guó)際各別都市 end");           var weather=data.substring(begin+15,end);           //填充天氣內(nèi)容           document.getElementById("divweather").innerHTML=weather;           //顯示結(jié)果           document.getElementById("divweather").style.visibility="visible";        }     }     window.setInterval("getWeather()", 3000); </script> </HEAD> <BODY onload="getWeather()"> <div align="center" id="today_time">今天的日期 </div> <div align="center" id="divweather"></div> <script language="javascript"> //設(shè)置顯示星期幾-用數(shù)組存儲(chǔ) var x = new Array("星期日", "星期一", "星期二"); var x = x.concat("星期三","星期四", "星期五"); var x = x.concat("星期六"); var today_time = new Date();   //獲取今天的日期 //先后用中文表示的日期 document.all("today_time").innerText=today_time.getFullYear()+ '年'+(today_time.getMonth()+1)+'月'+today_time.getDate()+ '日\(chéng)n'+x[today_time.getDay()]; </script> </BODY> </HTML>

 

【運(yùn)行效果】

 無(wú)刷新定時(shí)取數(shù)據(jù)運(yùn)行效果

【難點(diǎn)剖析】

本例使用XMLHTTP對(duì)象從其他網(wǎng)絡(luò)獲取天氣預(yù)報(bào)信息,此處重點(diǎn)是XMLHTTP的使用步驟,使用“window.setInterval”定時(shí)器,每隔三秒從服務(wù)器重新獲取一次數(shù)據(jù),這樣能始終保持最新的天氣預(yù)報(bào)信息。

【源碼下載】

為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:無(wú)刷新定時(shí)取數(shù)據(jù) 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: JS  刷新  數(shù)據(jù)