温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:内文广告管理系统V1.1版源码
当前文件:
TextAd/js/xmlhttp.js,打开代码结构图
TextAd/js/xmlhttp.js,打开代码结构图1//该源码下载自www.51aspx.com(51aspx.com) 2
function $() { 3
var elements = new Array(); 4
for (var i = 0; i < arguments.length; i++) { 5
var element = arguments[i]; 6
if (typeof element == 'string') 7
element = document.getElementById(element); 8
if (arguments.length == 1) 9
return element; 10
elements.push(element); 11
} 12
return elements; 13
} 14
15
//------------------------------------------------------------------------------------------ 16
17
//封装XMLHTTP的Request类的代码 18
var Request = new Object(); 19
//定义一个XMLHTTP的数组 20
Request.reqList = []; 21
//创建一个XMLHTTP对象,兼容不同的浏览器 22
function getAjax() 23
{ 24
var ajax=false; 25
try 26
{ 27
ajax = new ActiveXObject("Msxml2.XMLHTTP"); 28
} 29
catch (e) 30
{ 31
try 32
{ 33
ajax = new ActiveXObject("Microsoft.XMLHTTP"); 34
} 35
catch (E) 36
{ 37
ajax = false; 38
} 39
} 40
if (!ajax && typeof XMLHttpRequest!='undefined') 41
{ 42
ajax = new XMLHttpRequest(); 43
} 44
return ajax; 45
} 46
//封装XMLHTTP向服务器发送请求的操作 47
//url:向服务器请求的路径;method:请求的方法,即是GET还是POST;callback:当服务器成功返回结果时,调用的函数 48
//data:向服务器请求时附带的数据;urlencoded:url是否编码;callback2;当服务器返回错误时调用的函数 49
Request.send = function(url, method, callback, data, urlencoded, callback2) 50
{ 51
var req=getAjax(); //得到一个XMLHTTP的实例 52
//当XMLHTTP的请求状态发生改变时调用 53
req.onreadystatechange = function() 54
{ 55
// 当请求已经加载 56
if (req.readyState == 4) 57
{ 58
// 当请求返回成功 59
if (req.status < 400) 60
{ 61
// 当定义了成功回调函数时,执行成功回调函数 62
if(callback) 63
callback(req,data); 64
} 65
// 当请求返回错误 66
else 67
{ 68
alert("当加载数据时发生错误 :\n" + req.status+ "/" + req.statusText); 69
//当定义了失败回调函数时,执行失败回调函数 70
if (callback2) 71
callback2(req,data); 72
} 73
//服务器已经进行了处理,更改界面提示信息 74
afterLoading(); 75
//删除XMLHTTP,释放资源 76
try { 77
delete req; 78
req = null; 79
} catch (e) {} 80
} 81
} 82
//如果以POST方式回发服务器 83
if (method=="POST") 84
{ 85
req.open("POST", url, true); 86
//请求需要编码 87
if (urlencoded) 88
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 89
req.send(data); 90
Request.reqList.push(req); 91
} 92
//以GET方式请求 93
else 94
{ 95
req.open("GET", url, true); 96
req.send(null); 97
Request.reqList.push(req); 98
} 99
//正在向服务器发送请求,页面显示正在加载的提示 100
loading(); 101
return req; 102
} 103
//全部清除XMLHTTP数组元素,释放资源 104
Request.clearReqList = function() 105
{ 106
var ln = Request.reqList.length; 107
for (var i=0; i<ln; i++) { 108
var req = Request.reqList[i]; 109
if (req) 110
{ 111
try 112
{ 113
delete req; 114
} catch(e) {} 115
} 116
} 117
Request.reqList = []; 118
} 119
//进一步封装XMLHTTP以POST方式发送请求时的代码 120
//clear:是否清除XMLHTTP数组的所有元素;其他参数的意义参见Request.send 121
Request.sendPOST = function(url, data, callback, clear, callback2) 122
{ 123
if (clear) 124
Request.clearReqList(); 125
Request.send(url, "POST", callback, data, true, callback2); 126
} 127
//进一步封装XMLHTTP以GET方式发送请求时的代码 128
Request.sendGET = function(url, callback, args, clear, callback2) 129
{ 130
if (clear) 131
Request.clearReqList(); 132
return Request.send(url, "GET", callback, args, false, callback2); 133
} 134
//向服务器发送请求过程中,显示页面加载提示 135
function loading() 136
{ 137
var div = $("loadingflag"); 138
if(div) 139
div.style.display =""; 140
} 141
//服务器处理完成后,页面加载提示消失 142
function afterLoading() 143
{ 144
var div = $("loadingflag"); 145
if(div) 146
div.style.display ="none"; 147
} 148
149





}
}