📄 engine.js
字号:
EasyAjax=function(){};
EasyAjax._defaultPath="ejf/easyajax";
EasyAjax.DEBUG=false;
EasyAjax.preHook=null;
EasyAjax.postHook=null;
EasyAjax._randomId=function()
{
var random = Math.floor(Math.random() * 10001);
var id = (random + "_" + new Date().getTime()).toString();
return id;
}
EasyAjax._execute=function(scriptName,method,paraTypes)
{
var args = [];
for (var i = 0; i < arguments.length -3; i++) {
args[i] = arguments[i + 3];
}
var params,callData,paras="";
var lastArg = args[args.length - 1];
if (typeof lastArg == "function") {
//最后一个参数是否为回调函数
callData = { callback:args.pop() };
params = args;
}
else if (lastArg != null && typeof lastArg == "object" && lastArg.callback != null && typeof lastArg.callback == "function") {
//最后一个参数是回调对象
callData = args.pop();
params = args;
}
else
{
callData={callback:function(){}};
params=args;
}
for(var i=0;i<params.length;i++)
{
paras+=EasyAjax.parseParameter(i,params[i]);
}
if(paraTypes!=null){
for(var i=0;i<paraTypes.length;i++)
{
if(paraTypes[i]!=null)
paras+="ajax-call-p"+i+".java-type="+paraTypes[i]+"&";
}}
if(paras)paras=paras.replace(/%/g,"%25");//处理特殊字符%
var remoteCallId=EasyAjax._randomId();
EasyAjax.currentCallId=remoteCallId;
if(EasyAjax.DEBUG)alert(paras);
if(EasyAjax.preHook)EasyAjax.preHook();
var myAjax = new Ajax.Request(EasyAjax._defaultPath+"/ajaxCall",{
evalScripts:true,
method:"post",
parameters:"scriptName="+scriptName+"&methodName="+method+"&remoteCallId="+remoteCallId+"&"+paras,
onComplete:function(data)
{
if(EasyAjax.postHook)EasyAjax.postHook();
if(EasyAjax.DEBUG)alert(data.responseText);
try{
var s="EasyAjax._response("+data.responseText+",callData.callback);";
eval(s);
}
catch(e)
{
}
}
});
}
EasyAjax._response=function(result,callback)
{
try{
if(!result.error)
{
if(EasyAjax.currentCallId==result.remoteCallId)
callback(result.obj);
}
else
{
alert(result.obj);
}
}
catch(e)
{
alert(e);
}
}
EasyAjax.parseParameter=function(index,obj)
{
var s="";
var prex=null;
var propertyPrex="ajax-call-p"+index;
if(obj==null)return propertyPrex+".value=null&";
if(arguments.length>2)prex=arguments[2];
if(typeof obj=="object"){
if(obj.constructor==Array)
{
s+=propertyPrex+".value=[";
for(var i=0;i<obj.length;i++)
{
s+=this._paraseJSon2String(obj[i]);
if(i<obj.length-1)s+=",";
}
s+="]";
}
else{
for(property in obj)
{
if((typeof obj[property])!="object")
{s+=propertyPrex+(prex==null?"":"."+prex)+"."+property+"="+obj[property]+"&";
}
else s+=this.parseParameter(index,obj[property],prex==null?property:prex+"."+property);
}
}
}
else s=propertyPrex+".value="+obj;
s+="&";
return s;
}
EasyAjax._paraseJSon2String=function(obj)
{
if(obj==null)return null;
if(typeof obj=="object")
{
if(obj.constructor==Array)
{
var s="[";
for(var i=0;i<obj.length;i++)
{
s+=this._paraseJSon2String(obj[i]);
if(i<obj.length-1)s+=",";
}
s+="]";
return s;
}
else
{
var s="{";
for(p in obj)
{
s+=p+"="+this._paraseJSon2String(obj[p])+",";
}
//s=s.substring(0,s.length()-1);
s+="}";
return s;
}
}
else
return obj;
}
EasyAjax.setPreHook=function(hook)
{
EasyAjax.preHook=hook;
}
EasyAjax.setPostHook=function(hook)
{
EasyAjax.postHook=hook;
}
EasyAjax.useLoadingMessage = function(message) {
var loadingMessage;
if (message) loadingMessage = message;
else loadingMessage = "Loading";
EasyAjax.setPreHook(function() {
var disabledZone = $('disabledZone');
if (!disabledZone) {
disabledZone = document.createElement('div');
disabledZone.setAttribute('id', 'disabledZone');
disabledZone.style.position = "absolute";
disabledZone.style.zIndex = "1000";
disabledZone.style.left = "0px";
disabledZone.style.top = "0px";
disabledZone.style.width = "100%";
disabledZone.style.height = "100%";
document.body.appendChild(disabledZone);
var messageZone = document.createElement('div');
messageZone.setAttribute('id', 'messageZone');
messageZone.style.position = "absolute";
messageZone.style.top = "0px";
messageZone.style.right = "0px";
messageZone.style.background = "red";
messageZone.style.color = "white";
messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
messageZone.style.padding = "4px";
disabledZone.appendChild(messageZone);
var text = document.createTextNode(loadingMessage);
messageZone.appendChild(text);
}
else {
$('messageZone').innerHTML = loadingMessage;
disabledZone.style.visibility = 'visible';
}
});
EasyAjax.setPostHook(function() {
$('disabledZone').style.visibility = 'hidden';
});
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -