因最近做網(wǎng)站需要用到無刷新數(shù)據(jù),所以在網(wǎng)上查了一些資料,無刷新數(shù)據(jù)的實現(xiàn)無外乎用javascript或xmlhttp或iframe來實現(xiàn)。在網(wǎng)上找到一代碼不是不能用就是效率太低,有的甚至使我的CPU達到100%,我根據(jù)網(wǎng)上的代碼及查閱了一些資料,提供以下兩例無刷新數(shù)據(jù)的例子,保證完全無錯!
例一:
example1.htm
數(shù)據(jù)載入中……
-------------------------------------
數(shù)據(jù)調(diào)用程序:example1.asp
--------------------------------------
loadcontent.innerHTML="<%=now()%>"
例二:
example2.htm
-------------------------------------
數(shù)據(jù)載入中……
數(shù)據(jù)調(diào)用程序:example2.asp
<%=now%>
以上<%=now%>只是作為簡單例子,可千萬別誤作這只是一個顯示時間的程序哦,像在即時比分或者其它需要即時更新的數(shù)據(jù)中都可以用此二例,只是把<%=now%>換成其它的程序,當然你也可以用php程序或jsp程序等來實現(xiàn)數(shù)據(jù)的調(diào)用。
網(wǎng)頁刷新技術
一、在HTML文件頭里增加一個鍵,使該頁面在設定的時間后跳轉(zhuǎn)到指定的頁面(包括自身);
例如:
二、使用框架(frame或iframe)然后在JS腳本里定時刷新框架內(nèi)容。
上面兩種方式都會重新加載頁面,即刷新,給人的感覺不是很好,頁面有明顯的閃動。于是無刷新技術出現(xiàn)了。
三、是對第二種方式的一種變通。
即將眾多框架中的一個長寬設置為0,使其不可見,然后通過腳本定時刷新該隱藏框架內(nèi)容,再將該框架內(nèi)容“寫”到可瀏覽的框架里。早期的聊天室大多使用了這種技術。
真正意義上實現(xiàn)無刷新技術的還是以下兩種技術,它們甚至可以實現(xiàn)局部刷新:
四、xmlHttp技術,可以通過xmlHttp訪問asp頁面、aspx頁面、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組件訪問Web服務。
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;
}
其他的無刷新實現(xiàn)方法還有:
六、Remoting,使用Remoting也可以實現(xiàn)無刷新技術。因為Remoting組件可以提供包括Http在內(nèi)的多種訪問方式,當作為Http訪問時相當于一個WebService。
七、使用JavaApplet作為中介和服務器交互。不過用戶必須為這交互過程編寫Java代碼。
八、使用ActiveX控件做中介。但是ActiveX的權(quán)限太大,未一定能得到客戶信任。
九、還有一種推的技術,好象是要用到Lostinet.Janc組件,可以把服務器端的方法拿到客戶端來用。
|