淺談無(wú)刷新取得遠(yuǎn)程數(shù)據(jù)技術(shù)
刷新技術(shù)經(jīng)歷了大致幾個(gè)階段:
一、在HTML文件頭里增加一個(gè)鍵,使該頁(yè)面在設(shè)定的時(shí)間后跳轉(zhuǎn)到指定的頁(yè)面(包括自身);
例如:
二、使用框架然后在JS腳本里定時(shí)刷新框架內(nèi)容。
上面兩種方式都會(huì)重新加載頁(yè)面,即刷新,給人的感覺(jué)不是很好!于是無(wú)刷新技術(shù)出現(xiàn)了。
三、是對(duì)第二種方式的一種變通。
即將眾多框架中的一個(gè)長(zhǎng)寬設(shè)置為0,使其不可見(jiàn),然后通過(guò)腳本定時(shí)刷新該隱藏框架內(nèi)容,再將該框架內(nèi)容“寫(xiě)”到可瀏覽的框架里。早期的聊天室大多使用了這種技術(shù)。
真正意義上實(shí)現(xiàn)無(wú)刷新技術(shù)的還是以下兩種技術(shù),它們甚至可以實(shí)現(xiàn)局部刷新:
四、xmlHttp技術(shù),可以通過(guò)xmlHttp訪問(wèn)asp頁(yè)面、aspx頁(yè)面、WebService等。
function re(){var http = new ActiveXObject("Microsoft.XMLHTTP");http.open("GET","../Advertisement/3.htm",false);http.send();var str = http.responseText;t.innerHTML=str;}
五、WebService,使用WebService.htc組件訪問(wèn)Web服務(wù)。
var OBJ;function init(obj,op,id){OBJ=obj;OBJ.useService("admin/DataOperation.asmx?WSDL","getBody");OBJ.getBody.callService(show,op,id);}
function show(result){OBJ.innerHTML=result.value;}
六、Remoting,使用Remoting也可以實(shí)現(xiàn)無(wú)刷新技術(shù)。因?yàn)镽emoting組件可以提供包括Http在內(nèi)的多種訪問(wèn)方式,當(dāng)作為Http訪問(wèn)時(shí)相當(dāng)于一個(gè)WebService。