浅谈无刷新取得远程数据技术的实现
刷新技术经历了大致几个阶段:
一、在HTML文件头里增加一个键,使该页面在设定的时间后跳转到指定的页面(包括自身);
例如:
让一个页面过上一定的时间,自动转到另一个页面或者站点去,如:
[code]<Meta HTTP-EQUIV="refresh" content="6; url=http://www.jnwjz.com">[/code]
content中的6表示时间,单位为秒,url=后面是你要转向的网址,若是与你当前网页在同一目录下,可以直接写上文件名,如:
[code]< Meta HTTP-EQUIV="refresh" content="6; url=index.html" > [/code]
网页每隔一段时间刷新一次,10秒刷新一次,代码这样写:
[code]<meta http-equiv="refresh" content="10">[/code]
二、使用框架然后在JS脚本里定时刷新框架内容。
上面两种方式都会重新加载页面,即刷新,给人的感觉不是很好!于是无刷新技术出现了。
[code]<script language=javascript>
function togopage(secs,gotourl){
showmessage.innerHTML=secs; //显示当前还剩余的时间,秒数
if(--secs>0){ //如果还不到设定的时间,继续等待
setTimeout("gotopage("+secs+",'"+surl+"')",1000);
}
else{ // 到时间,跳转到指定页面
location.href=gotourl;
}
}
</script>[/code]
以上是实现自动延时跳转的javascript函数。
在页面中,调用该javascript函数:
<span id="showmessage">5</span>秒后自动跳转到默认页面
<script language=javascript>gotopage(5,'index.html');</script>
在调用函数中,传入两个参数,第一个是延时时间,上例设为5秒;第二个是跳转页面,上例为index.html文件。
三、是对第二种方式的一种变通。
即将众多框架中的一个长宽设置为0,使其不可见,然后通过脚本定时刷新该隐藏框架内容,再将该框架内容“写”到可浏览的框架里。早期的聊天室大多使用了这种技术。
真正意义上实现无刷新技术的还是以下两种技术,它们甚至可以实现局部刷新:
四、xmlHttp技术,可以通过xmlHttp访问asp页面、aspx页面、WebService等。
五、WebService,使用WebService.htc组件访问Web服务。
[code]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;
}[/code]
六、Remoting,使用Remoting也可以实现无刷新技术。因为Remoting组件可以提供包括Http在内的多种访问方式,当作为Http访问时相当于一个WebService。