这个自己还没有看懂,先放上来!
//ZAJAX v 0.10
//由土豆网 Zarz 制作 (http://www.toodou.com/)
//基于 sajax 0.10 (http://www.modernmethod.com/sajax/)
//拆分了SAJAX的服务端和客户端的程序,增加了调用的自由度,在服务端改善了中文支持
var zajax_debug_mode = false;
//var zajax_debug_mode = true;
var zajax_request_type = "GET";
function zajax_debug(text) {
if (zajax_debug_mode)
alert("RSD: " + text)
}
function zajax_init_object() {
zajax_debug("zajax_init_object() called..")
var A;
try {
A=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
A=new ActiveXObject("Microsoft.XMLHTTP");
} catch (oc) {
A=null;
}
}
if(!A && typeof XMLHttpRequest != "undefined")
A = new XMLHttpRequest();
if (!A)
zajax_debug("Could not create connection object.");
return A;
}
function zajax_do_call(uri, func_name, args) {
var i, x, n;
//var uri;
var post_data;
//uri = "<?php echo $zzajaxremote_uri; ?>";
if (zajax_request_type == "GET") {
if (uri.indexOf("?") == -1)
uri = uri + "?rs=" + escape(func_name);
else
uri = uri + "&rs=" + escape(func_name);
for (i = 0; i < args.length-1; i++)
uri = uri + "&rsargs[]=" + escape(args[i]);
uri = uri + "&rsrnd=" + new Date().getTime();
post_data = null;
} else {
post_data = "rs=" + escape(func_name);
for (i = 0; i < args.length-1; i++)
post_data = post_data + "&rsargs[]=" + escape(args[i]);
}
x = zajax_init_object();
x.open(zajax_request_type, uri, true);
if (zajax_request_type == "POST") {
x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
}
x.onreadystatechange = function() {
if (x.readyState != 4)
return;
zajax_debug("received " + x.responseText);
var status;
var data;
status = x.responseText.charAt(0);
data = x.responseText.substring(2);
if (status == "-")
alert("Error: " + data);
else
args[args.length-1](data);
}
x.send(post_data);
zajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
zajax_debug(func_name + " waiting..");
delete x;
}