function Ajax(method,url,parameters,callback)
{
var len=arguments.length;
var type,url,postdata,fn;
if(len<2)
{
alert('没有2个一下参数的重载,至少必须指定请求类型(type)和url地址!');
return;
}
type=arguments[0];
url=arguments[1];
if(len>2)
{
var args=arguments[2];
if(typeof(args)=="string")
{
postdata=args;
}
}
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open(type,url,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
fn = arguments[len-1];
xhr.onreadystatechange = function (){
if(xhr.readyState==4)
{
if(xhr.status==200)
{
if(typeof(fn)=="function")
fn(xhr.responseText);
}
else
{
alert("你所请求的页面有异常");
}
}
};
xhr.send(postdata);
}
function Test()
{
Ajax("get","/WebRoot/servlet/TestAjax");
Ajax("get","/WebRoot/servlet/TestAjax",function (date){
alert("Get Date:\n"+date);
});
Ajax("post","/WebRoot/servlet/TestAjax");
Ajax("post","/WebRoot/servlet/TestAjax",function (date){
alert("Post Date:\n"+date);
});
Ajax("post","/WebRoot/servlet/TestAjax","username=jonllen&pwd=123456",function (date){
alert("Post Date:\n"+date);
});
}
就只有一个函数Ajax,调用的例子是Test(),由于JavaScript的函数申明不需要固定参数,能实现动态获取传递,利用这点我们能实现类似与C#或Java里面的重载,并且我们能根据传入参数的类型和数量进行特别的判断,而执行不同的操作。上述Ajax函数里就用到判断当最后一个传入的参数是函数类型的时候我们就认为是这个是Ajax回调函数,如果是字符串类型的话就认为是postData,这样我们就能实现动态传递可选参数,也就是说你可以加上function(data){alert(date);}就会自动在Ajax加载返回的回调该函数,如果没有就不调用。
{
var len=arguments.length;
var type,url,postdata,fn;
if(len<2)
{
alert('没有2个一下参数的重载,至少必须指定请求类型(type)和url地址!');
return;
}
type=arguments[0];
url=arguments[1];
if(len>2)
{
var args=arguments[2];
if(typeof(args)=="string")
{
postdata=args;
}
}
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open(type,url,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
fn = arguments[len-1];
xhr.onreadystatechange = function (){
if(xhr.readyState==4)
{
if(xhr.status==200)
{
if(typeof(fn)=="function")
fn(xhr.responseText);
}
else
{
alert("你所请求的页面有异常");
}
}
};
xhr.send(postdata);
}
function Test()
{
Ajax("get","/WebRoot/servlet/TestAjax");
Ajax("get","/WebRoot/servlet/TestAjax",function (date){
alert("Get Date:\n"+date);
});
Ajax("post","/WebRoot/servlet/TestAjax");
Ajax("post","/WebRoot/servlet/TestAjax",function (date){
alert("Post Date:\n"+date);
});
Ajax("post","/WebRoot/servlet/TestAjax","username=jonllen&pwd=123456",function (date){
alert("Post Date:\n"+date);
});
}
就只有一个函数Ajax,调用的例子是Test(),由于JavaScript的函数申明不需要固定参数,能实现动态获取传递,利用这点我们能实现类似与C#或Java里面的重载,并且我们能根据传入参数的类型和数量进行特别的判断,而执行不同的操作。上述Ajax函数里就用到判断当最后一个传入的参数是函数类型的时候我们就认为是这个是Ajax回调函数,如果是字符串类型的话就认为是postData,这样我们就能实现动态传递可选参数,也就是说你可以加上function(data){alert(date);}就会自动在Ajax加载返回的回调该函数,如果没有就不调用。