浅谈无刷新取得远程数据技术

 刷新技术经历了大致几个阶段:

一、在HTML文件头里增加一个键,使该页面在设定的时间后跳转到指定的页面(包括自身);

例如:

<meta http-equiv="refresh" content="30">

二、使用框架然后在JS脚本里定时刷新框架内容。

上面两种方式都会重新加载页面,即刷新,给人的感觉不是很好!于是无刷新技术出现了。

三、是对第二种方式的一种变通。

即将众多框架中的一个长宽设置为0,使其不可见,然后通过脚本定时刷新该隐藏框架内容,再将该框架内容“写”到可浏览的框架里。早期的聊

天室大多使用了这种技术。

真正意义上实现无刷新技术的还是以下两种技术,它们甚至可以实现局部刷新:

四、xmlHttp技术,可以通过xmlHttp访问asp页面、aspx页面、WebService等。

<script language="javascript">
function re()
{
var http = new ActiveXObject("Microsoft.XMLHTTP");
http.open(
"GET","../Advertisement/3.htm",false);
http.send();
var str = http.responseText;
t.innerHTML
=str;
}

</script>
<span id=t></span>

五、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;
}

微软的标准范例:

<html>
<head>
<script language="JavaScript">
var iCallID;

function init()
{
    service.useService(
"/services/math.asmx?WSDL","MyMath");
    iCallID 
= service.MyMath.callService("add",5,6);
}


function onWSresult()
{  
    
if((event.result.error)&&(iCallID==event.result.id))  
    
{    
        
var xfaultcode = event.result.errorDetail.code;
        
var xfaultstring = event.result.errorDetail.string;    
        
var xfaultsoap = event.result.errorDetail.raw;
        
        
// Add code to output error information here
    }

    
else
    
{
        alert(
"The method returned the result : " + event.result.value);
    }

}

</script>
</head>
<body onload="init()">
<div id="service" style="behavior:url(webservice.htc)" onresult="onWSresult()">
</div>
</body>
</html>

六、Remoting,使用Remoting也可以实现无刷新技术。因为Remoting组件可以提供包括Http在内的多种访问方式,当作为Http访问时相当于一个

WebService。

posted @ 2006-04-21 11:06  坏坏天堂  阅读(168)  评论(0)    收藏  举报