⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doc.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.doc");dojo.require("dojo.io.*");dojo.require("dojo.event.topic");dojo.require("dojo.rpc.JotService");dojo.require("dojo.dom");/* * TODO: * * Package summary needs to compensate for "is" * Handle host environments * Deal with dojo.widget weirdness * Parse parameters * Limit function parameters to only the valid ones (Involves packing parameters onto meta during rewriting) * Package display page * */dojo.doc._count = 0;dojo.doc._keys = {};dojo.doc._myKeys = [];dojo.doc._callbacks = {function_names: []};dojo.doc._cache = {}; // Saves the JSON objects in cachedojo.doc._rpc = new dojo.rpc.JotService;dojo.doc._rpc.serviceUrl = "http://dojotoolkit.org/~pottedmeat/jsonrpc.php";dojo.lang.mixin(dojo.doc, {	functionNames: function(/*mixed*/ selectKey, /*Function*/ callback){		// summary: Returns an ordered list of package and function names.		dojo.debug("functionNames()");		if(!selectKey){			selectKey = ++dojo.doc._count;		}		dojo.doc._buildCache({			type: "function_names",			callbacks: [dojo.doc._functionNames, callback],			selectKey: selectKey		});	},	_functionNames: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){		dojo.debug("_functionNames()");		var searchData = [];		for(var key in data){			// Add the package if it doesn't exist in its children			if(!dojo.lang.inArray(data[key], key)){				searchData.push([key, key]);			}			// Add the functions			for(var pkg_key in data[key]){				searchData.push([data[key][pkg_key], data[key][pkg_key]]);			}		}		searchData = searchData.sort(dojo.doc._sort);		if(evt.callbacks && evt.callbacks.length){			var callback = evt.callbacks.shift();			callback.call(null, type, searchData, evt);		}	},	getMeta: function(/*mixed*/ selectKey, /*Function*/ callback, /*Function*/ name, /*String?*/ id){		// summary: Gets information about a function in regards to its meta data		dojo.debug("getMeta(" + name + ")");		if(!selectKey){			selectKey = ++dojo.doc._count;		}		dojo.doc._buildCache({			type: "meta",			callbacks: [callback],			name: name,			id: id,			selectKey: selectKey		});	},	_getMeta: function(/*String*/ type, /*Object*/ data, /*Object*/ evt){		dojo.debug("_getMeta(" + evt.name + ") has package: " + evt.pkg + " with: " + type);		if("load" == type && evt.pkg){			evt.type = "meta";			dojo.doc._buildCache(evt);		}else{			if(evt.callbacks && evt.callbacks.length){				var callback = evt.callbacks.shift();				callback.call(null, "error", {}, evt);			}		}	},	getSrc: function(/*mixed*/ selectKey, /*Function*/ callback, /*String*/ name, /*String?*/ id){		// summary: Gets src file (created by the doc parser)		dojo.debug("getSrc()");		if(!selectKey){			selectKey = ++dojo.doc._count;		}			dojo.doc._buildCache({			type: "src",			callbacks: [callback],			name: name,			id: id,			selectKey: selectKey		});	},	_getSrc: function(/*String*/ type, /*Object*/ data, /*Object*/ evt){		dojo.debug("_getSrc()");		if(evt.pkg){				evt.type = "src";			dojo.doc._buildCache(evt);		}else{			if(evt.callbacks && evt.callbacks.length){				var callback =  evt.callbacks.shift();				callback.call(null, "error", {}, evt);			}		}	},	getDoc: function(/*mixed*/ selectKey, /*Function*/ callback, /*String*/ name, /*String?*/ id){		// summary: Gets external documentation stored on jot		dojo.debug("getDoc()");		if(!selectKey){			selectKey = ++dojo.doc._count;		}		var input = {			type: "doc",			callbacks: [callback],			name: name,			id: id,			selectKey: selectKey		}		dojo.doc.functionPackage(dojo.doc._getDoc, input);	},	_getDoc: function(/*String*/ type, /*Object*/ data, /*Object*/ evt){		dojo.debug("_getDoc(" + evt.pkg + "/" + evt.name + ")");			dojo.doc._keys[evt.selectKey] = {count: 0};		var search = {};		search.forFormName = "DocFnForm";		search.limit = 1;		if(!evt.id){			search.filter = "it/DocFnForm/require = '" + evt.pkg + "' and it/DocFnForm/name = '" + evt.name + "' and not(it/DocFnForm/id)";		}else{			search.filter = "it/DocFnForm/require = '" + evt.pkg + "' and it/DocFnForm/name = '" + evt.name + "' and it/DocFnForm/id = '" + evt.id + "'";		}		dojo.debug(dojo.json.serialize(search));			dojo.doc._rpc.callRemote("search", search).addCallbacks(function(data){ evt.type = "fn"; dojo.doc._gotDoc("load", data.list[0], evt); }, function(data){ evt.type = "fn"; dojo.doc._gotDoc("error", {}, evt); });			search.forFormName = "DocParamForm";		if(!evt.id){			search.filter = "it/DocParamForm/fns = '" + evt.pkg + "=>" + evt.name + "'";		}else{			search.filter = "it/DocParamForm/fns = '" + evt.pkg + "=>" + evt.name + "=>" + evt.id + "'";		}		delete search.limit;		dojo.doc._rpc.callRemote("search", search).addCallbacks(function(data){ evt.type = "param"; dojo.doc._gotDoc("load", data.list, evt); }, function(data){ evt.type = "param"; dojo.doc._gotDoc("error", {}, evt); });	},	_gotDoc: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){		dojo.debug("_gotDoc(" + evt.type + ") for " + evt.selectKey);		dojo.doc._keys[evt.selectKey][evt.type] = data;		if(++dojo.doc._keys[evt.selectKey].count == 2){			dojo.debug("_gotDoc() finished");			var keys = dojo.doc._keys[evt.selectKey];			var description = '';			if(!keys.fn){				keys.fn = {}			}			if(keys.fn["main/text"]){				description = dojo.dom.createDocumentFromText(keys.fn["main/text"]).childNodes[0].innerHTML;				if(!description){					description = keys.fn["main/text"];				}						}			data = {				description: description,				returns: keys.fn["DocFnForm/returns"],				id: keys.fn["DocFnForm/id"],				parameters: {},				variables: []			}			for(var i = 0, param; param = keys["param"][i]; i++){				data.parameters[param["DocParamForm/name"]] = {					description: param["DocParamForm/desc"]				};			}			delete dojo.doc._keys[evt.selectKey];					if(evt.callbacks && evt.callbacks.length){				var callback = evt.callbacks.shift();				callback.call(null, "load", data, evt);			}		}	},	getPkgMeta: function(/*mixed*/ selectKey, /*Function*/ callback, /*String*/ name){		dojo.debug("getPkgMeta(" + name + ")");		if(!selectKey){			selectKey = ++dojo.doc._count;		}		dojo.doc._buildCache({			type: "pkgmeta",			callbacks: [callback],			name: name,			selectKey: selectKey		});	},	_getPkgMeta: function(/*Object*/ input){		dojo.debug("_getPkgMeta(" + input.name + ")");		input.type = "pkgmeta";		dojo.doc._buildCache(input);	},	_onDocSearch: function(/*Object*/ input){		dojo.debug("_onDocSearch(" + input.name + ")");		if(!input.name){			return;		}		if(!input.selectKey){			input.selectKey = ++dojo.doc._count;		}		input.callbacks = [dojo.doc._onDocSearchFn];		input.name = input.name.toLowerCase();		input.type = "function_names";		dojo.doc._buildCache(input);	},	_onDocSearchFn: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){		dojo.debug("_onDocSearchFn(" + evt.name + ")");		var packages = [];		var size = 0;		pkgLoop:		for(var pkg in data){			for(var i = 0, fn; fn = data[pkg][i]; i++){				if(fn.toLowerCase().indexOf(evt.name) != -1){					// Build a list of all packages that need to be loaded and their loaded state.					++size;					packages.push(pkg);					continue pkgLoop;				}			}		}		dojo.doc._keys[evt.selectKey] = {};		dojo.doc._keys[evt.selectKey].pkgs = packages;		dojo.doc._keys[evt.selectKey].pkg = evt.name; // Remember what we were searching for		dojo.doc._keys[evt.selectKey].loaded = 0;		for(var i = 0, pkg; pkg = packages[i]; i++){			setTimeout("dojo.doc.getPkgMeta(\"" + evt.selectKey + "\", dojo.doc._onDocResults, \"" + pkg + "\");", i*10);		}	},	_onDocResults: function(/*String*/ type, /*Object*/ data, /*Object*/ evt){		dojo.debug("_onDocResults(" + evt.name + "/" + dojo.doc._keys[evt.selectKey].pkg + ") " + type);		++dojo.doc._keys[evt.selectKey].loaded;		if(dojo.doc._keys[evt.selectKey].loaded == dojo.doc._keys[evt.selectKey].pkgs.length){			var info = dojo.doc._keys[evt.selectKey];			var pkgs = info.pkgs;			var name = info.pkg;			delete dojo.doc._keys[evt.selectKey];			var results = {selectKey: evt.selectKey, docResults: []};			data = dojo.doc._cache;			for(var i = 0, pkg; pkg = pkgs[i]; i++){				if(!data[pkg]){					continue;				}				for(var fn in data[pkg]["meta"]){					if(fn.toLowerCase().indexOf(name) == -1){						continue;					}					if(fn != "requires"){						for(var pId in data[pkg]["meta"][fn]){							var result = {								pkg: pkg,								name: fn,								summary: ""							}							if(data[pkg]["meta"][fn][pId].summary){								result.summary = data[pkg]["meta"][fn][pId].summary;							}							results.docResults.push(result);						}					}				}			}			dojo.debug("Publishing docResults");			dojo.doc._printResults(results);		}	},	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -