码出精彩人生!

源来无刷新

 记得最开始接触ASP.NET AJAx框架技术,觉得好神奇。只要把ScriptManager控

件和UpdatePanel控件往页面上一拖,在把需要无刷新的地方放在UpdatePanel里面就能

使页面无刷新了。还有Ajax框架里面集成的一些其它控件,用起来都非常方便。
 
 直到有一次不小心使用了360浏览器运行自己写的无刷新页面,才发现,自己鼠

标随便动动,就发出了数次请求(当然页面时没有刷新的)。后来深入了解,才慢慢发

现,说是无刷新,其实就是“背着我们做坏事”。通过高手讲解才知道,ASP.NET AJAX

框架技术的无刷新,实际上是把请求用js发送,然后再把这些js封装成了控件,所有我

们用的时候就可以那么方便了。

 经过数次请教和总结,以下为一个最基本的js方法:

/*
 url:请求连接(一般格式为一个HttpHandler)
 param:传给服务器的参数(一般格式为:name=value&id=value);
 method:GET或POST
 callback:回调方法
*/
function goAjax(url,param,method,callback){
 var httpXml;
 //创建XMLHttpRequest对象
 if(window.XMLHttpRequest){
  httpXml=new XMLHttpRequest();//非IE6
 }else{
  httpXml=new ActiveXObject(Microsoft.XMLHTTP);//IE6
 }

 //判断请求方式
 if(method=="GET"){
  httpXml.open("GET",url+"?"+param,true);
  httpXml.send();
 }else{
  httpXml.open("POST",url,true);
  httpXml.setRequestHeader("Content-type","application/x-www-form-urlencoded");//设置请求头
  httpXml.send(param);
 }

 //响应处理
 httpXml.onreadystatechange=function{
  if(httpXml.readyState==4){//响应状态是否已完成
   if(httpXml.status==200){//是否为成功响应
    callback(httpXml.responseText);
   }else{
    alert("提交数据有误!");
   }
  }
 }
}

注:以上只是我个人总结的最基本的原理,如有什么不恰当的地方请指出,谢谢!。

posted on 2010-05-05 20:46  winner.chen  阅读(464)  评论(3)    收藏  举报