////////////////////Ajax////////////Method///////////////////
//Power By WeisNet @2006
//Edit Section for 56best.cn
/////////////////////////////////////////////////
var Try = {
these: function() {
var
returnValue;
for (var i =
0; i < arguments.length; i++) {
var lambda = arguments[i];
try {
returnValue = lambda();
break;
} catch (e) {}
}
//alert(123);
return
returnValue;
}
}
function grr(rp) {
if(RegExp.$1)/(.*)/.exec("");
var re=new RegExp("<result>(.*)<\/result>");
re.exec(rp);
if(RegExp.$1) return RegExp.$1;
return "";
}
function crr(rp) {
if(RegExp.$1)/(.*)/.exec("");
var re=new RegExp("<content>(.*)<\/content>");
re.exec(rp);
if(RegExp.$1) return RegExp.$1;
return "";
}
var Ajax = function() {}
//var xhr ;这样定义不行
Ajax.prototype.Init = function(){
return Try.these(
function() {return new ActiveXObject("Msxml2.XMLHTTP")},
function() {return new ActiveXObject("Microsoft.XMLHTTP")},
function() {return new XMLHttpRequest()}
) || false;
}
Ajax.prototype.Config = {
Result:"",
SucInfo:"",
FaildInfo:"",
Url:"",
returnType:"Compare"
//输入Compare是比较返回的字符是否一致,要指定Result值,//其他返回内容
}
var aj = new Ajax();
Ajax.prototype.Action = function(url)
{ //同步
url = url + '&e='+Math.random();
var xhr =
aj.Init();
xhr.onreadystatechange = function()
{
if
(xhr.readyState == 4)
{
if
(xhr.status == 200)
{
aj.FuncResult(aj.Config.Spn,xhr);
}
}
}
xhr.open("POST",url,false);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(null);
}
Ajax.prototype.Actionfor = function(url,spn)
{ //异步
url = url + '&e='+Math.random();
var xhr = aj.Init();
//这样写是为了多异步执行
xhr.onreadystatechange = function()
{
if
(xhr.readyState == 4)
{
if
(xhr.status == 200)
{
aj.FuncResult(spn,xhr);
}
}
}
xhr.open("GET",url,true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(null);
}
Ajax.prototype.ActionAlert = function(url)
//执行alert提示框的同步
{
url = url +
'&e='+Math.random();
var xhr = aj.Init();
//这样写是为了多异步执行
xhr.onreadystatechange = function()
{
if
(xhr.readyState == 4)
{
if
(xhr.status == 200)
{
aj.AlertResult(xhr);
}
}
}
xhr.open("GET",url,false);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(null);
}
Ajax.prototype.onResult = function(v) {
return v==aj.Config.Result;
}
Ajax.prototype.FuncResult =
function(spn,xhr)
{ //alert(spn.id);
if
(aj.Config.returnType=='Compare')
{
if (aj.onResult(grr(xhr.responseText)))
{
spn.innerHTML = aj.Config.SucInfo;
if (aj.Config.Url!='')
{
window.location.href = aj.Config.Url;
}
}
else
{
spn.innerHTML = aj.Config.FaildInfo;
}
}
else
{
spn.innerHTML = crr(xhr.responseText);
}
}
Ajax.prototype.AlertResult = function(xhr)
{
if
(aj.Config.returnType=='Compare')
{
if (aj.onResult(grr(xhr.responseText)))
{
alert(aj.Config.SucInfo);
}
else
{
alert(aj.Config.FaildInfo);
}
}
else
{
alert(crr(xhr.responseText));
}
}
///////////////////////////////////////////////////////////////
使用方法: (比如说是在页面中加载数据)
Test.HTML 页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=http://www.w3.org/1999/xhtml>
<HEAD>
<title>TestTQ</title>
<meta name="GENERATOR"
Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE"
Content="C#">
<meta
name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
<META HTTP-EQUIV="Pragma"
CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<script
type="text/javascript"
src="js/AjaxMethod.js"></script>
<script
type="text/javascript">
function ajfor(v,spn)
{
var Ajspn = document.getElementById(spn)
var Webreq = new Ajax();
Webreq.Config.Result = "TestSuc";
Webreq.Config.Spn = Ajspn;
Webreq.Config.SucInfo = "恭喜您,登陆成功!";
Webreq.Config.FaildInfo = "对不起,登陆失败,请重试!";
Webreq.Config.returnType = 'Content';
//Webreq.Config.Url = 'http://www.163.com';
Webreq.Actionfor('Ajax.aspx?v='+v,Ajspn);
}
function icfr()
{
alert(document.getElementById('cadd').innerHTML);
}
</script>
<style
type="text/css">
.cWeb
{color:#fff;}
</style>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1"
method="post" runat="server">
<span
id="s1Pn" ><script
type="text/javascript">ajfor(1,'s1Pn')</script>正在加载数据...</span>
<hr
/>
<span
id="s2Pn" ><script
type="text/javascript">ajfor(2,'s2Pn')</script>正在加载数据...</span>
<hr/>
<span
id="s3Pn" ><script
type="text/javascript">ajfor(3,'s3Pn')</script>正在加载数据...</span>
<hr
/>
<span
id="s4Pn" ><script
type="text/javascript">ajfor(4,'s4Pn')</script>正在加载数据...</span>