因最近做网站需要用到无刷新数据,所以在网上查了一些资料,无刷新数据的实现无外乎用javascript或xmlhttp或iframe来实现。在网上找到一代码不是不能用就是效率太低,有的甚至使我的CPU达到100%,我根据网上的代码及查阅了一些资料,提供以下两例无刷新数据的例子,保证完全无错!
例一:
example1.htm
数据载入中……
-------------------------------------
数据调用程序:example1.asp
--------------------------------------
loadcontent.innerHTML="<%=now()%>"
例二:
example2.htm
-------------------------------------
数据载入中……
数据调用程序:example2.asp
<%=now%>
以上<%=now%>只是作为简单例子,可千万别误作这只是一个显示时间的程序哦,像在即时比分或者其它需要即时更新的数据中都可以用此二例,只是把<%=now%>换成其它的程序,当然你也可以用php程序或jsp程序等来实现数据的调用。
网页刷新技术
一、在HTML文件头里增加一个键,使该页面在设定的时间后跳转到指定的页面(包括自身);
例如:
二、使用框架(frame或iframe)然后在JS脚本里定时刷新框架内容。
上面两种方式都会重新加载页面,即刷新,给人的感觉不是很好,页面有明显的闪动。于是无刷新技术出现了。
三、是对第二种方式的一种变通。
即将众多框架中的一个长宽设置为0,使其不可见,然后通过脚本定时刷新该隐藏框架内容,再将该框架内容“写”到可浏览的框架里。早期的聊天室大多使用了这种技术。
真正意义上实现无刷新技术的还是以下两种技术,它们甚至可以实现局部刷新:
四、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;
}
其他的无刷新实现方法还有:
六、Remoting,使用Remoting也可以实现无刷新技术。因为Remoting组件可以提供包括Http在内的多种访问方式,当作为Http访问时相当于一个WebService。
七、使用JavaApplet作为中介和服务器交互。不过用户必须为这交互过程编写Java代码。
八、使用ActiveX控件做中介。但是ActiveX的权限太大,未一定能得到客户信任。
九、还有一种推的技术,好象是要用到Lostinet.Janc组件,可以把服务器端的方法拿到客户端来用。
|