源来无刷新
记得最开始接触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) 收藏 举报