无刷新技术的实现方式总览浏览次数:次字体:[增加减小]类型:转载因最近做网站需要用到无刷新数据,所以在网上查了一些资料,无刷新数据的实现无外乎用javascript或xmlhttp或iframe来实现。在网上找到一代码不是不能用就是效率太低,有的甚至使我的CPU达到100%,我根据网上的代码及查阅了一些资料,提供以下两例无刷新数据的例子,保证完全无错!例一:example1.htm-------------------------------------htmlheadtitle无刷新/titlescriptlanguage=JavaScripttype=text/javascriptfunctionGetData(url){url=example1.asp;//调用页面try{DataLoad.src=url;}catch(e){returnfalse;}{vartimeoutid=setTimeout(GetData(),1000)}}/scriptscriptid=DataLoadlanguage=JavaScripttype=text/javascriptdefer/scriptbodyonLoad=javascript:GetData();spanid=loadcontent数据载入中……/span/body-------------------------------------数据调用程序:example1.asp--------------------------------------loadcontent.innerHTML=%=now()%例二:example2.htm-------------------------------------HTMLheadtitle无刷新/titlescriptlanguage=javascriptfunctionGetData(){url=example2.asp;//调用页面varhttp=newActiveXObject(Microsoft.XMLHTTP);http.open(GET,url,false);http.send();varstr=http.responseText;loadcontent.innerHTML=str;setTimeout(GetData(),1000);}/script/headBODYonload=javascript:GetData();spanid=loadcontent数据载入中……/span/BODY/HTML-------------------------数据调用程序:example2.asp---------------------------%=now%---------------------------以上%=now%只是作为简单例子,可千万别误作这只是一个显示时间的程序哦,像在即时比分或者其它需要即时更新的数据中都可以用此二例,只是把%=now%换成其它的程序,当然你也可以用php程序或jsp程序等来实现数据的调用。12:19|发送消息|固定链接|引用通告(0)|写入博客|webservice网页刷新技术一、在HTML文件头里增加一个键,使该页面在设定的时间后跳转到指定的页面(包括自身);例如:metahttp-equiv=refreshcontent=30二、使用框架(frame或iframe)然后在JS脚本里定时刷新框架内容。上面两种方式都会重新加载页面,即刷新,给人的感觉不是很好,页面有明显的闪动。于是无刷新技术出现了。三、是对第二种方式的一种变通。即将众多框架中的一个长宽设置为0,使其不可见,然后通过脚本定时刷新该隐藏框架内容,再将该框架内容“写”到可浏览的框架里。早期的聊天室大多使用了这种技术。真正意义上实现无刷新技术的还是以下两种技术,它们甚至可以实现局部刷新:四、xmlHttp技术,可以通过xmlHttp访问asp页面、aspx页面、WebService等。scriptlanguage=javascriptfunctionre(){varhttp=newActiveXObject(Microsoft.XMLHTTP);http.open(GET,../Advertisement/3.htm,false);http.send();varstr=http.responseText;t.innerHTML=str;}/scriptspanid=t/span五、WebService,使用WebService.htc组件访问Web服务。varOBJ;functioninit(obj,op,id){OBJ=obj;OBJ.useService(admin/DataOperation.asmx?WSDL,getBody);OBJ.getBody.callService(show,op,id);}functionshow(result){OBJ.innerHTML=result.value;}其他的无刷新实现方法还有:六、Remoting,使用Remoting也可以实现无刷新技术。因为Remoting组件可以提供包括Http在内的多种访问方式,当作为Http访问时相当于一个WebService。七、使用JavaApplet作为中介和服务器交互。不过用户必须为这交互过程编写Java代码。八、使用ActiveX控件做中介。但是ActiveX的权限太大,未一定能得到客户信任。九、还有一种推的技术,好象是要用到Lostinet.Janc组件,可以把服务器端的方法拿到客户端来用。在这些技术中,我也只是用过WebService.htc组件,实现网页的局部动态刷新使用方法如下:在web目录中需要一个文件webservice.htc,可以到这里下载:本例通过WebService,不断的从数据库中取数值,动态刷新编辑框,间隔为6秒。新建一个WebService,部分代码如下(省略了数据库打开关闭和异常处理代码,以下代码不能运行):publicclassService1:System.Web.Services.WebService{//获得某个监测点的当天电压最大值[WebMethod]publicdoubleGetMAXValue(intclDmsId){doublereturndouble=Double.NaN;//从数据库中取值returnreturndouble;}//获得某个监测点的当天电压最大值发生时间[WebMethod]publicstringGetMAXTime(intclDmsId){stringreturnstr=null;//从数据库中取值returnreturnstr;}网页调用WebService代码如下:%@Pagelanguage=c#Codebehind=rt.aspx.csAutoEventWireup=falseInherits=power.rt%HTMLscriptvarintCallId=0;functionInit()