亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? buffalo.js

?? LyBBS基于Struts1.3/Ajax的架構(gòu)
?? JS
?? 第 1 頁 / 共 3 頁
字號:
var Buffalo = Class.create();
Buffalo.BOCLASS="_BUFFALO_OBJECT_CLASS_";
Buffalo.VERSION="2.0-alpha3";

Buffalo.prototype = {
	initialize: function(gateway, async, events, options) {
		this.gateway = gateway;
		this.transport = null;
		if (typeof(async) == 'undefined') {
			this.async = true;
		} else {
			this.async = async;
		}
		this.currentCallback = new Function();
		this.setEvents(events);
		this.queue = [];
		this.requesting = false;
		this.options = {timeout:30000};
		Object.extend(this.options, options || {});
	},
	
	getGateway : function() { return this.gateway;},

	setEvents: function(events) {
		this.events = {
			onLoading: Buffalo.Default.showLoading,
			onFinish: new Function(),
			onException: Buffalo.Default.showException,
			onError: Buffalo.Default.showError,
			onTimeout: new Function()
		};
		Object.extend(this.events, events || {});
	},
	
	_remoteCall: function(url, buffaloCall, callback) {
		this.requesting = true;
		this.transport = XmlHttp.create();
		try {
			this.transport.open("POST", url, this.async);
			this.transport.setRequestHeader("X-Buffalo-Version", Buffalo.VERSION);
			this.transport.send(buffaloCall.xml());
		} catch (e) {
			this.events.onError(this.transport);
			this.events["onLoading"](false);
			return;
		}
		this.requestTime = new Date();
		this.timeoutHandle = new PeriodicalExecuter(this._timeoutChecker.bind(this), 0.5);
		this.currentCallback = callback;
		if (this.async) {
			this.transport.onreadystatechange = this.onStateChange.bind(this);
			this.events["onLoading"](true);
		} else { 
			this.response();
		}
	},
	
	_timeoutChecker: function() {
		if ((new Date() - this.requestTime) > this.options.timeout)	{
			this.events["onTimeout"]();
			this.timeoutHandle.stop();
		}
	},

	nextRemoteCall : function() {
		if (this.queue.length <= 0) return ;
		
		var command = this.queue.shift();
		this._remoteCall(command.url, command.call, command.callback);
	},

	remoteCall: function(service, params, callback) {	
		var idx = service.indexOf(".");
		
		var serviceId = service.substring(0,idx);
		var method = service.substring(idx+1,service.length);
		var newUrl = this.gateway+"/buffalo/"+serviceId;
		
		var call = new Buffalo.Call(method);
		for (var i = 0; i < params.length; i++) {
			call.addParameter(params[i]);
		}

		this.queue.push({url:newUrl, call: call, callback: callback});
		
		if (!this.requesting) {
			this.nextRemoteCall();
		}
	},
	
	onStateChange: function(){
		if (this.transport.readyState == 4) {
			this.response();
		}
	},
	
	response : function() {
		this.timeoutHandle.stop();
		this.events["onLoading"](false);
		if (this.transport.status == '200') {
			var reply = new Buffalo.Reply(this.transport);
			if (reply.isFault()) {
				this.events["onException"](reply.getResult());
			}
			this.currentCallback(reply);
			this.events["onFinish"](reply);
			this.requesting = false;
			this.nextRemoteCall();
		} else {
			this.events["onError"](this.transport);
			this.requesting = false;
		}
	}
}

Buffalo.Default = {
	loadingPane: null,
	errorPane: null,
	exceptionPane: null,
	
	showLoading : function(state) {
		this.loadingPane = $("buffalo_loading");
		if (this.loadingPane == null) {
			var el = document.createElement('DIV');
			el.setAttribute("id","buffalo_loading");
			el.style.cssText="display:none;font-family:Verdana;font-size:11px;border:1px solid #00CC00;background-color:#A4FFA4;padding:1px;position:absolute; right:1px; top:1px; width:110px; height:14px; z-index:10000";
			el.innerHTML="buffalo loading... ";
			document.body.appendChild(el);
			this.loadingPane = el;
		}
		if (state) {
			this.loadingPane.style.display="block";
			this.loadingPane.style.top = document.body.scrollTop+1;
		} else {
			this.loadingPane.style.display="none";
		}
	},
	
	showError: function(transport) {
		this.errorPane = $("buffalo_error");
		if (this.errorPane == null) {
			var el = document.createElement('DIV');
			el.setAttribute("id","buffalo_error");
			el.style.cssText="font-size:11px;border:4px solid #FF3333;background-color:#fff;padding:4px;position:absolute;overflow:auto; right:10px; top:10px; width:500px; height:300px; z-index:1";
			el.innerHTML="<h2>Error: " + transport.status+" - "+transport.statusText+"</h2>";
			el.innerHTML+="<textarea style='width:96%;height:80%'>"+transport.responseText.stripTags()+"</textarea>";
      		el.onclick=function(){ el.style.display="none"; }
			document.body.appendChild(el);
			this.errorPane = el;
		} else {
			this.errorPane.style.display = "block";
		}
	},
	
	showException: function(faultObj) {
		this.exceptionPane = $("buffalo_exception");
		if (this.exceptionPane == null) {
			var el = document.createElement('DIV');
			el.setAttribute("id","buffalo_exception");
			el.style.cssText="font-size:11px;border:4px solid #FFFF33;background-color:#fff;padding:4px;position:absolute;overflow:auto; right:10px; top:10px; width:300px; height:100px; z-index:1";
			el.innerHTML ="<h2>Exception: " + faultObj.code+"</h2>";
			el.innerHTML += "Code: "+faultObj.code+"<br/>";
			el.innerHTML += "Message: "+faultObj.message+"<br/>";
			el.innerHTML += "Detail: " + faultObj.detail;
      		el.onclick=function(){ el.style.display="none"; }
			document.body.appendChild(el);
			this.exceptionPane = el;
		} else {
			this.exceptionPane.style.display = "block";
		}
	},
	
	showTimeout: function() {
		alert("timeout!");
	}
}

function getDomDocumentPrefix() {
	if (getDomDocumentPrefix.prefix)
		return getDomDocumentPrefix.prefix;
	
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			// try to create the objects
			o = new ActiveXObject(prefixes[i] + ".DomDocument");
			return getDomDocumentPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XML parser");
}

function getXmlHttpPrefix() {
	if (getXmlHttpPrefix.prefix)
		return getXmlHttpPrefix.prefix;
	
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var o;
	for (var i = 0; i < prefixes.length; i++) {
		try {
			o = new ActiveXObject(prefixes[i] + ".XmlHttp");
			return getXmlHttpPrefix.prefix = prefixes[i];
		}
		catch (ex) {};
	}
	
	throw new Error("Could not find an installed XMLHttp object");
}

function XmlHttp() {}

XmlHttp.create = function () {
	try {
		if (window.XMLHttpRequest) {
			var req = new XMLHttpRequest();
			if (req.readyState == null) {
				req.readyState = 1;
				req.addEventListener("load", function () {
					req.readyState = 4;
					if (typeof req.onreadystatechange == "function")
						req.onreadystatechange();
				}, false);
			}
			
			return req;
		}
		if (window.ActiveXObject) {
			return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
		}
	}
	catch (ex) {}
	throw new Error("Your browser does not support XmlHttp objects");
};

function XmlDocument() {}
XmlDocument.create = function () {
	try {
		if (document.implementation && document.implementation.createDocument) {
			var doc = document.implementation.createDocument("", "", null);
			if (doc.readyState == null) {
				doc.readyState = 1;
				doc.addEventListener("load", function () {
					doc.readyState = 4;
					if (typeof doc.onreadystatechange == "function")
						doc.onreadystatechange();
				}, false);
			}
			
			return doc;
		}
		if (window.ActiveXObject)
			return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
	}
	catch (ex) {}
	throw new Error("Your browser does not support XmlDocument objects");
};

if (window.DOMParser &&
	window.XMLSerializer &&
	window.Node && Node.prototype && Node.prototype.__defineGetter__) {

	Document.prototype.loadXML = function (s) {
		
		var doc2 = (new DOMParser()).parseFromString(s, "text/xml");
		
		while (this.hasChildNodes())
			this.removeChild(this.lastChild);
		for (var i = 0; i < doc2.childNodes.length; i++) {
			this.appendChild(this.importNode(doc2.childNodes[i], true));
		}
	};
	
	Document.prototype.__defineGetter__("xml", function () {
		return (new XMLSerializer()).serializeToString(this);
	});
}
Buffalo.Call = Class.create();
Buffalo.Call.prototype = {
	initialize: function(methodname){
		this.method = methodname;
		this.params = [];
	},

	addParameter: function(data){
		if (typeof(data) == 'undefined') return;
		this.params[this.params.length] = data;
	},

	xml: function(){
		var xmlstr = "<buffalo-call>\n";
		xmlstr += "<method>" + this.method+ "</method>\n";
		for (var i = 0; i < this.params.length; i++) {
		  var data = this.params[i];
		  xmlstr += this.getParamXML(this.dataTypeOf(data),data) + "\n";
		}
		xmlstr += "</buffalo-call>";
		return xmlstr; 
	},
	
	/* Guess the type of an javascript object */
	dataTypeOf: function (o){
		if (o == null) {
			return "null";
		}
		var type = typeof(o);
		type = type.toLowerCase();
		switch(type){
		  case "number":
			if (Math.round(o) == o) type = "int";
			else type = "double";
			break;
		  case "object":
			var con = o.constructor;
			if (con == Date) type = "date";
			else if (con == Array) type = "list";
			else type = "map";
			break;
		}
		return type;
	},
	
	doValueXML: function(type,data){
		var xml, str = data;
		if (typeof(data) == "string") {
			str = str.replace(/&/g,"&amp;");
			str = str.replace(/</g,"&lt;");
			str = str.replace(/>/g,"&gt;");
			xml = "<" + type + ">" + str + "</" + type + ">";
		} else {
			xml = "<" + type + ">" + data + "</" + type + ">";
		}
				
		return xml;
	},

	doBooleanXML:function(data){
		var value = (data==true)?1:0;
		var xml = "<boolean>" + value + "</boolean>";
		return xml;
	},
	
	doDateXML: function(data){
		var xml = "<date>";
		xml += dateToISO8609(data);
		xml += "</date>";
		return xml;
	},
	
	doArrayXML : function(data){
		var xml = "<list>\n";
		var boClass = data[Buffalo.BOCLASS];
		var boType = boClass ? boClass : this.arrayType(data);
		xml += "<type>" +boType+ "</type>\n";
		xml += "<length>" +data.length+ "</length>\n";
		for (var i = 0; i < data.length; i++){
			xml += this.getParamXML(this.dataTypeOf(data[i]),data[i]) + "\n";
		}
		xml += "</list>\n";
		return xml;
	},
	
	arrayType: function(arr) {
		var type = "";
		var obj = arr;
		while(this.isArray(obj)) {
			var canBeArray = true;
			for(var i = 0; i < obj.length; i++) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品销魂美女一区二区三区| 成人av资源在线观看| 不卡欧美aaaaa| 日韩一区二区三区电影在线观看| 国产精品婷婷午夜在线观看| 蜜桃免费网站一区二区三区| 欧美性生活一区| 久久美女艺术照精彩视频福利播放| 欧美国产视频在线| 久久国产精品露脸对白| 欧美亚洲综合在线| 一区二区三区在线视频观看| 国产成a人亚洲| 精品国产麻豆免费人成网站| 蜜臂av日日欢夜夜爽一区| 欧美在线观看一区二区| 1024成人网色www| 99re这里都是精品| 综合色天天鬼久久鬼色| jizzjizzjizz欧美| 亚洲综合丁香婷婷六月香| 99麻豆久久久国产精品免费优播| 国产精品久久一级| 91久久精品一区二区| 日本免费在线视频不卡一不卡二| 日韩一区二区在线观看| 国产精品自在在线| 欧美成人艳星乳罩| 国产精品一区二区在线观看不卡 | 亚洲电影一区二区| 99久久久免费精品国产一区二区 | 在线成人av影院| 91精品久久久久久久91蜜桃| 337p粉嫩大胆噜噜噜噜噜91av| 99在线精品免费| 国产成人aaa| 韩国精品主播一区二区在线观看| 天天色天天爱天天射综合| 一区二区三区加勒比av| 亚洲日本在线天堂| 亚洲色图色小说| 欧美国产欧美亚州国产日韩mv天天看完整| www.日韩精品| 偷窥少妇高潮呻吟av久久免费| 欧美va亚洲va国产综合| www.欧美亚洲| 日韩成人免费电影| 亚洲天堂免费在线观看视频| 7777女厕盗摄久久久| 国产成人午夜高潮毛片| 午夜精品福利一区二区三区av | 免费看日韩a级影片| 国产午夜精品理论片a级大结局 | 亚洲国产精品99久久久久久久久| 欧美日韩亚洲综合在线 | 久久久777精品电影网影网 | 亚洲国产成人91porn| 欧美一区二区精品久久911| 99国内精品久久| 成人午夜大片免费观看| 亚洲乱码精品一二三四区日韩在线| 久久精品欧美日韩精品| 欧美亚洲愉拍一区二区| 亚洲超碰精品一区二区| 精品成人佐山爱一区二区| 亚洲最新在线观看| 欧美一级久久久久久久大片| 亚洲免费观看高清| 日韩影视精彩在线| 韩国视频一区二区| 成人av电影免费观看| 在线欧美一区二区| 日韩亚洲欧美在线观看| 久久综合成人精品亚洲另类欧美| 欧美国产一区在线| 亚洲一区二区视频在线| 亚洲欧美另类在线| 天堂一区二区在线免费观看| 亚洲综合色噜噜狠狠| 午夜激情一区二区三区| 久久99九九99精品| av日韩在线网站| 日韩区在线观看| 久久久久国产免费免费| 国产欧美日韩在线视频| 亚洲男同性恋视频| 香蕉影视欧美成人| 国产一区二区三区在线观看免费视频 | 亚洲国产精品二十页| 国产清纯白嫩初高生在线观看91| 自拍偷拍国产亚洲| 亚洲综合色自拍一区| 极品尤物av久久免费看| 91麻豆蜜桃一区二区三区| 日韩精品中文字幕一区| 国产欧美一区二区精品性 | 成人激情校园春色| 欧美伊人久久大香线蕉综合69| 日韩欧美成人午夜| 日本中文在线一区| 午夜精品福利视频网站| 风间由美中文字幕在线看视频国产欧美| 极品少妇xxxx偷拍精品少妇| 亚洲一级二级在线| 日本久久一区二区| 国产福利一区二区| 亚洲一区免费在线观看| 中文字幕一区二区三区色视频| 日韩高清在线一区| 91色视频在线| 国产日韩欧美综合在线| 日本欧美在线看| 欧美三级韩国三级日本一级| 国产亚洲制服色| 久久精品99国产国产精| 欧美唯美清纯偷拍| 日韩美女视频19| 中文字幕一区在线观看视频| 另类人妖一区二区av| 欧美日韩一区二区三区不卡| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲欧美一区二区久久 | 成人午夜碰碰视频| 久久理论电影网| 成人一道本在线| 水野朝阳av一区二区三区| 国产精品丝袜一区| 国产精品欧美久久久久无广告| 久久视频一区二区| 中文成人综合网| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲免费观看高清完整版在线观看| 国产午夜精品久久久久久免费视| 美腿丝袜在线亚洲一区 | 欧美一区中文字幕| 国产91露脸合集magnet| 婷婷综合五月天| 亚洲天堂av老司机| 久久亚洲春色中文字幕久久久| 色综合久久久久久久久久久| 久久99久久99小草精品免视看| 亚洲精品国产第一综合99久久| 2021中文字幕一区亚洲| 欧美精品 国产精品| 91在线porny国产在线看| 国内不卡的二区三区中文字幕| 一区二区久久久| 亚洲人快播电影网| 欧美成人aa大片| 精品久久一二三区| 亚洲女同ⅹxx女同tv| 日韩高清不卡在线| 不卡电影免费在线播放一区| 欧美性大战久久久久久久蜜臀| 欧美一区二区三区小说| 国产精品国产三级国产aⅴ无密码| 一区二区三区在线观看欧美| 极品尤物av久久免费看| 欧美性猛交xxxx黑人交| 久久久久国色av免费看影院| 亚洲成人av免费| 色综合久久综合网97色综合| 欧美电视剧在线看免费| 一区二区三区欧美亚洲| 国产91精品精华液一区二区三区| 欧美日韩国产精品自在自线| 久久久精品综合| 轻轻草成人在线| 在线播放91灌醉迷j高跟美女| 中文字幕视频一区| 国产成人精品免费网站| 精品国产伦一区二区三区观看体验| 亚洲国产三级在线| 欧美日韩一区久久| 亚洲精品videosex极品| 97精品视频在线观看自产线路二| 久久久一区二区三区| 国产福利不卡视频| 欧美哺乳videos| 日韩精品一区二区三区在线观看| 欧美精品久久99| 精品免费一区二区三区| 久久久99久久| 国产精品久久久99| 亚洲综合激情网| 欧美午夜精品久久久| 欧美日韩中字一区| 国产精品国产a| 欧美日韩亚洲综合一区二区三区| 国产在线不卡一区| 午夜精品久久久久久久99樱桃 | 在线观看欧美黄色| 久久精品999| 亚洲国产成人porn| 国产精品久久看| 日韩欧美国产一区二区三区 | 日韩精品中文字幕一区| 91在线观看视频| 国产精品小仙女| 欧美久久久久久蜜桃|