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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? repubsubio.js

?? 圖書管理系統包括圖書的增加、刪除、修改等功能
?? JS
?? 第 1 頁 / 共 2 頁
字號:
	this.openTunnel = function(){		// We create two iframes here:		// one for getting data		this.rcvNodeName = "rcvIFrame_"+this.getRandStr();		// set cookie that can be used to find the receiving iframe		this.setCookie( [				[this.tunnelFrameKey,this.rcvNodeName],				["path","/"]			], false		);		this.rcvNode = dojo.io.createIFrame(this.rcvNodeName);		// FIXME: set the src attribute here to the initialization URL		dojo.io.setIFrameSrc(this.rcvNode, this.initDoc+"?callback=repubsub.rcvNodeReady&domain="+document.domain);		// the other for posting data in reply		this.sndNodeName = "sndIFrame_"+this.getRandStr();		this.sndNode = dojo.io.createIFrame(this.sndNodeName);		// FIXME: set the src attribute here to the initialization URL		dojo.io.setIFrameSrc(this.sndNode, this.initDoc+"?callback=repubsub.sndNodeReady&domain="+document.domain);	}	this.rcvNodeReady = function(){		// FIXME: why is this sequence number needed? Why isn't the UID gen		// 		  function enough?        var statusURI = [this.tunnelURI, '/kn_status/', this.getRandStr(), '_', 						 String(this.tunnelInitCount++)].join("");             // (kn._seqNum++); // FIXME: !!!!		// this.canRcv = true;		this.log("rcvNodeReady");		// FIXME: initialize receiver and request the base topic		// dojo.io.setIFrameSrc(this.rcvNode, this.serverBaseURL+"/kn?do_method=blank");		var initURIArr = [	this.serverBaseURL, "/kn?kn_from=", escape(this.tunnelURI),							"&kn_id=", escape(this.tunnelID), "&kn_status_from=", 							escape(statusURI)];		// FIXME: does the above really need a kn_response_flush? won't the		// 		  server already know? If not, what good is it anyway?		dojo.io.setIFrameSrc(this.rcvNode, initURIArr.join(""));		// setup a status path listener, but don't tell the server about it,		// since it already knows we're itnerested in our own tunnel status		this.subscribe(statusURI, this, "statusListener", true);		this.log(initURIArr.join(""));	}	this.sndNodeReady = function(){		this.canSnd = true;		this.log("sndNodeReady");		this.log(this.backlog.length);		// FIXME: handle any pent-up send commands		if(this.backlog.length > 0){			this.dequeueEvent();		}	}	this.statusListener = function(evt){		this.log("status listener called");		this.log(evt.status, "info");	}	// this handles local event propigation	this.dispatch = function(evt){		// figure out what topic it came from		if(evt["to"]||evt["kn_routed_from"]){			var rf = evt["to"]||evt["kn_routed_from"];			// split off the base server URL			var topic = rf.split(this.serverBaseURL, 2)[1];			if(!topic){				// FIXME: how do we recover when we don't get a sane "from"? Do				// we try to route to it anyway?				topic = rf;			}			this.log("[topic] "+topic);			if(topic.length>3){				if(topic.slice(0, 3)=="/kn"){					topic = topic.slice(3);				}			}			if(this.attachPathList[topic]){				this.attachPathList[topic](evt);			}		}	}	this.subscribe = function(	topic /* kn_from in the old terminilogy */, 								toObj, toFunc, dontTellServer){		if(!this.isInitialized){			this.subscriptionBacklog.push([topic, toObj, toFunc, dontTellServer]);			return;		}		if(!this.attachPathList[topic]){			this.attachPathList[topic] = function(){ return true; }			this.log("subscribing to: "+topic);			this.topics.push(topic);		}		var revt = new dojo.io.repubsubEvent(this.tunnelURI, topic, "route");		var rstr = [this.serverBaseURL+"/kn", revt.toGetString()].join("");		dojo.event.kwConnect({			once: true,			srcObj: this.attachPathList, 			srcFunc: topic, 			adviceObj: toObj, 			adviceFunc: toFunc		});		// NOTE: the above is a local mapping, if we're not the leader, we		// 		 should connect our mapping to the topic handler of the peer		// 		 leader, this ensures that not matter what happens to the		// 		 leader, we don't really loose our heads if/when the leader		// 		 goes away.		if(!this.rcvNode){ /* this should be an error! */ }		if(dontTellServer){			return;		}		this.log("sending subscription to: "+topic);		// create a subscription event object and give it all the props we need		// to updates on the specified topic		// FIXME: we should only enqueue if this is our first subscription!		this.sendTopicSubToServer(topic, rstr);	}	this.sendTopicSubToServer = function(topic, str){		if(!this.attachPathList[topic]["subscriptions"]){			this.enqueueEventStr(str);			this.attachPathList[topic].subscriptions = 0;		}		this.attachPathList[topic].subscriptions++;	}	this.unSubscribe = function(topic, toObj, toFunc){		// first, locally disconnect		dojo.event.kwDisconnect({			srcObj: this.attachPathList, 			srcFunc: topic, 			adviceObj: toObj, 			adviceFunc: toFunc		});				// FIXME: figure out if there are any remaining listeners to the topic,		// 		  and if not, inform the server of our desire not to be		// 		  notified of updates to the topic	}	// the "publish" method is really a misnomer, since it really means "take	// this event and send it to the server". Note that the "dispatch" method	// handles local event promigulation, and therefore we emulate both sides	// of a real event router without having to swallow all of the complexity.	this.publish = function(topic, event){		var evt = dojo.io.repubsubEvent.initFromProperties(event);		// FIXME: need to make sure we have from and to set correctly		// 		  before we serialize and send off to the great blue		// 		  younder.		evt.to = topic;		// evt.from = this.tunnelURI;		var evtURLParts = [];		evtURLParts.push(this.serverBaseURL+"/kn");		// serialize the event to a string and then post it to the correct		// topic		evtURLParts.push(evt.toGetString());		this.enqueueEventStr(evtURLParts.join(""));	}	this.enqueueEventStr = function(evtStr){		this.log("enqueueEventStr");		this.backlog.push(evtStr);		this.dequeueEvent();	}	this.dequeueEvent = function(force){		this.log("dequeueEvent");		if(this.backlog.length <= 0){ return; }		if((this.canSnd)||(force)){			dojo.io.setIFrameSrc(this.sndNode, this.backlog.shift()+"&callback=repubsub.sndNodeReady");			this.canSnd = false;		}else{			this.log("sndNode not available yet!", "debug");		}	}}dojo.io.repubsubEvent = function(to, from, method, id, routeURI, payload, dispname, uid){	this.to = to;	this.from = from;	this.method = method||"route";	this.id = id||repubsub.getRandStr();	this.uri = routeURI;	this.displayname = dispname||repubsub.displayname;	this.userid = uid||repubsub.userid;	this.payload = payload||"";	this.flushChars = 4096;	this.initFromProperties = function(evt){		if(evt.constructor = dojo.io.repubsubEvent){ 			for(var x in evt){				this[x] = evt[x];			}		}else{			// we want to copy all the properties of the evt object, and transform			// those that are "stock" properties of dojo.io.repubsubEvent. All others should			// be copied as-is			for(var x in evt){				if(typeof this.forwardPropertiesMap[x] == "string"){					this[this.forwardPropertiesMap[x]] = evt[x];				}else{					this[x] = evt[x];				}			}		}	}	this.toGetString = function(noQmark){		var qs = [ ((noQmark) ? "" : "?") ];		for(var x=0; x<this.properties.length; x++){			var tp = this.properties[x];			if(this[tp[0]]){				qs.push(tp[1]+"="+encodeURIComponent(String(this[tp[0]])));			}			// FIXME: we need to be able to serialize non-stock properties!!!		}		return qs.join("&");	}}dojo.io.repubsubEvent.prototype.properties = [["from", "kn_from"], ["to", "kn_to"], 									["method", "do_method"], ["id", "kn_id"], 									["uri", "kn_uri"], 									["displayname", "kn_displayname"], 									["userid", "kn_userid"], 									["payload", "kn_payload"],									["flushChars", "kn_response_flush"],									["responseFormat", "kn_response_format"] ];// maps properties from their old names to their new names...dojo.io.repubsubEvent.prototype.forwardPropertiesMap = {};// ...and vice versa...dojo.io.repubsubEvent.prototype.reversePropertiesMap = {};// and we then populate them both from the properties listfor(var x=0; x<dojo.io.repubsubEvent.prototype.properties.length; x++){	var tp = dojo.io.repubsubEvent.prototype.properties[x];	dojo.io.repubsubEvent.prototype.reversePropertiesMap[tp[0]] = tp[1];	dojo.io.repubsubEvent.prototype.forwardPropertiesMap[tp[1]] = tp[0];}// static version of initFromProperties, creates new event and object and// returns it after initdojo.io.repubsubEvent.initFromProperties = function(evt){	var eventObj = new dojo.io.repubsubEvent();	eventObj.initFromProperties(evt);	return eventObj;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品三级在线观看| 亚洲第一在线综合网站| 亚洲国产精品尤物yw在线观看| 秋霞av亚洲一区二区三| 99久久精品一区二区| 精品成人一区二区三区四区| 一区二区视频在线| 国产一区欧美日韩| 欧美顶级少妇做爰| 成人欧美一区二区三区小说 | 亚洲综合偷拍欧美一区色| 精品一区二区三区不卡 | 亚洲成人动漫精品| 成人福利视频在线看| 精品久久国产字幕高潮| 天天综合网 天天综合色| 色综合久久88色综合天天免费| 久久这里只有精品6| 青草av.久久免费一区| 欧美日韩精品免费观看视频| 一区二区三区在线播| 色先锋aa成人| 自拍偷拍亚洲综合| 国产成人av福利| 久久免费看少妇高潮| 久久精品72免费观看| 日韩一区二区三区电影 | 亚洲一区视频在线观看视频| 99re热视频精品| 国产精品污污网站在线观看| 国产大陆a不卡| 久久亚洲二区三区| 狠狠色狠狠色综合日日91app| 日韩一区二区麻豆国产| 日韩黄色免费电影| 69精品人人人人| 热久久一区二区| 日韩欧美在线网站| 麻豆91在线播放| 日韩一区二区三区电影| 久久电影网站中文字幕| 精品三级av在线| 国产美女精品人人做人人爽 | 91精品国产综合久久精品图片| 亚洲午夜免费电影| 欧美日韩一区二区三区四区 | 亚洲一区二区三区不卡国产欧美 | 三级欧美在线一区| 中文字幕高清一区| 成人一区二区三区视频| 亚洲人xxxx| 欧美日韩国产首页| 久久电影网电视剧免费观看| 国产欧美日本一区二区三区| 99久久久久免费精品国产| 亚洲国产aⅴ成人精品无吗| 91精品国产综合久久久久久久 | 美国av一区二区| 国产三区在线成人av| 一本色道综合亚洲| 日本欧美一区二区三区| 国产日韩欧美一区二区三区乱码 | 成人精品在线视频观看| 一区二区三区不卡在线观看 | 麻豆精品国产传媒mv男同| 欧美精品一区二区三区一线天视频| 国产成人鲁色资源国产91色综| 亚洲欧美日韩国产另类专区 | 日韩综合在线视频| 久久综合久久综合久久| 一本到高清视频免费精品| 蜜桃av一区二区在线观看| 国产精品久久久久久久久免费相片| 一本色道综合亚洲| 激情小说亚洲一区| 亚洲最新视频在线观看| 久久久久国产免费免费| 欧美日韩美女一区二区| 成人午夜av在线| 日本欧美一区二区| 亚洲女人小视频在线观看| 日韩精品一区二区三区视频 | 成人黄色综合网站| 樱桃视频在线观看一区| 精品日韩一区二区三区免费视频| 91麻豆国产自产在线观看| 久久精品国产网站| 亚洲国产综合91精品麻豆| 中文字幕+乱码+中文字幕一区| 欧美日韩中字一区| av一区二区三区| 国产精品一二一区| 美女www一区二区| 亚洲成人激情av| 一区二区视频在线| 一区在线播放视频| 国产欧美日产一区| 久久久久亚洲综合| 日韩片之四级片| 91精选在线观看| 精品视频资源站| 欧美亚洲国产怡红院影院| 不卡一区中文字幕| 成人在线综合网| 成人a区在线观看| 国产成a人亚洲精品| 国产乱码一区二区三区| av电影一区二区| 国产91精品在线观看| 国产馆精品极品| 丁香五精品蜜臀久久久久99网站| 国内久久婷婷综合| 麻豆高清免费国产一区| 视频一区二区欧美| 天堂一区二区在线| 日韩电影免费在线观看网站| 五月激情六月综合| 日韩中文字幕区一区有砖一区| 亚洲综合清纯丝袜自拍| 亚洲第一综合色| 日本麻豆一区二区三区视频| 日本aⅴ亚洲精品中文乱码| 日本一不卡视频| 免费高清在线一区| 国产在线视频一区二区三区| 蜜臀久久99精品久久久久久9| 免费在线观看不卡| 久久爱www久久做| 国产馆精品极品| av色综合久久天堂av综合| 色狠狠一区二区| 制服丝袜激情欧洲亚洲| 精品日韩在线一区| 国产精品色在线观看| 怡红院av一区二区三区| 青青草国产精品97视觉盛宴| 韩国理伦片一区二区三区在线播放 | 国内久久婷婷综合| 不卡一区在线观看| 91福利视频网站| 欧美videofree性高清杂交| 国产女人水真多18毛片18精品视频 | 日本不卡高清视频| 国产河南妇女毛片精品久久久| 色哟哟一区二区在线观看| 91精品国产全国免费观看| 国产欧美日韩亚州综合| 一区二区视频免费在线观看| 久久精品国产免费| 91女神在线视频| 精品国内二区三区| 亚洲激情第一区| 国产成人av一区二区三区在线 | 久久青草欧美一区二区三区| 成人欧美一区二区三区视频网页 | 日韩精品电影在线观看| 国产精品小仙女| 欧美亚洲综合色| 国产亚洲欧美日韩日本| 亚洲电影一区二区三区| 国产99精品视频| 欧美一级二级三级蜜桃| 亚洲精品日产精品乱码不卡| 国产精品一区2区| 91麻豆精品国产| 一级特黄大欧美久久久| 成人激情视频网站| 精品国产乱码久久久久久牛牛| 亚洲永久免费视频| 粉嫩av一区二区三区在线播放| 日韩丝袜情趣美女图片| 一区二区三区国产| 成人av网站在线| 日韩欧美高清dvd碟片| 亚洲成人中文在线| 91免费视频大全| 国产精品欧美综合在线| 国产综合色视频| 欧美一级爆毛片| 无码av免费一区二区三区试看| av一二三不卡影片| 国产亚洲制服色| 久久精品国产99国产精品| 精品视频一区二区三区免费| 亚洲人被黑人高潮完整版| 成人在线综合网| 久久久国产精华| 国产精品资源站在线| 亚洲精品一区二区三区在线观看| 日本不卡视频一二三区| 欧美一区二区三区四区久久| 香蕉久久一区二区不卡无毒影院| 色偷偷88欧美精品久久久| 最近中文字幕一区二区三区| 成人sese在线| 亚洲欧洲99久久| 在线一区二区三区做爰视频网站| 亚洲你懂的在线视频| 欧洲视频一区二区| 亚洲一区国产视频|