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

📄 loader.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
📖 第 1 页 / 共 2 页
字号:
if(!dojo._hasResource["dojo.foo"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojo.foo"] = true;/* * loader.js - A bootstrap module.  Runs before the hostenv_*.js file. Contains * all of the package loading methods. */(function(){	var d = dojo;	d.mixin(d, {		_loadedModules: {},		_inFlightCount: 0,		_hasResource: {},		_modulePrefixes: {			dojo: 	{	name: "dojo", value: "." },			// dojox: 	{	name: "dojox", value: "../dojox" },			// dijit: 	{	name: "dijit", value: "../dijit" },			doh: 	{	name: "doh", value: "../util/doh" },			tests: 	{	name: "tests", value: "tests" }		},		_moduleHasPrefix: function(/*String*/module){			// summary: checks to see if module has been established			var mp = this._modulePrefixes;			return !!(mp[module] && mp[module].value); // Boolean		},		_getModulePrefix: function(/*String*/module){			// summary: gets the prefix associated with module			var mp = this._modulePrefixes;			if(this._moduleHasPrefix(module)){				return mp[module].value; // String			}			return module; // String		},		_loadedUrls: [],		//WARNING: 		//		This variable is referenced by packages outside of bootstrap:		//		FloatingPane.js and undo/browser.js		_postLoad: false,				//Egad! Lots of test files push on this directly instead of using dojo.addOnLoad.		_loaders: [],		_unloaders: [],		_loadNotifying: false	});		dojo._loadPath = function(/*String*/relpath, /*String?*/module, /*Function?*/cb){		// 	summary:		//		Load a Javascript module given a relative path		//		//	description:		//		Loads and interprets the script located at relpath, which is		//		relative to the script root directory.  If the script is found but		//		its interpretation causes a runtime exception, that exception is		//		not caught by us, so the caller will see it.  We return a true		//		value if and only if the script is found.		//		// relpath: 		//		A relative path to a script (no leading '/', and typically ending		//		in '.js').		// module: 		//		A module whose existance to check for after loading a path.  Can be		//		used to determine success or failure of the load.		// cb: 		//		a callback function to pass the result of evaluating the script		var uri = ((relpath.charAt(0) == '/' || relpath.match(/^\w+:/)) ? "" : this.baseUrl) + relpath;		try{			return !module ? this._loadUri(uri, cb) : this._loadUriAndCheck(uri, module, cb); // Boolean		}catch(e){			console.error(e);			return false; // Boolean		}	}	dojo._loadUri = function(/*String*/uri, /*Function?*/cb){		//	summary:		//		Loads JavaScript from a URI		//	description:		//		Reads the contents of the URI, and evaluates the contents.  This is		//		used to load modules as well as resource bundles. Returns true if		//		it succeeded. Returns false if the URI reading failed.  Throws if		//		the evaluation throws.		//	uri: a uri which points at the script to be loaded		//	cb: 		//		a callback function to process the result of evaluating the script		//		as an expression, typically used by the resource bundle loader to		//		load JSON-style resources		if(this._loadedUrls[uri]){			return true; // Boolean		}		var contents = this._getText(uri, true);		if(!contents){ return false; } // Boolean		this._loadedUrls[uri] = true;		this._loadedUrls.push(uri);		if(cb){			contents = '('+contents+')';		}else{			//Only do the scoping if no callback. If a callback is specified,			//it is most likely the i18n bundle stuff.			contents = this._scopePrefix + contents + this._scopeSuffix;		}		if(d.isMoz){ contents += "\r\n//@ sourceURL=" + uri; } // debugging assist for Firebug		var value = d["eval"](contents);		if(cb){ cb(value); }		return true; // Boolean	}		// FIXME: probably need to add logging to this method	dojo._loadUriAndCheck = function(/*String*/uri, /*String*/moduleName, /*Function?*/cb){		// summary: calls loadUri then findModule and returns true if both succeed		var ok = false;		try{			ok = this._loadUri(uri, cb);		}catch(e){			console.error("failed loading " + uri + " with error: " + e);		}		return !!(ok && this._loadedModules[moduleName]); // Boolean	}	dojo.loaded = function(){		// summary:		//		signal fired when initial environment and package loading is		//		complete. You may use dojo.addOnLoad() or dojo.connect() to		//		this method in order to handle initialization tasks that		//		require the environment to be initialized. In a browser host,		//		declarative widgets will be constructed when this function		//		finishes runing.		this._loadNotifying = true;		this._postLoad = true;		var mll = d._loaders;				//Clear listeners so new ones can be added		//For other xdomain package loads after the initial load.		this._loaders = [];		for(var x = 0; x < mll.length; x++){			try{				mll[x]();			}catch(e){				throw e;				console.error("dojo.addOnLoad callback failed: " + e, e); /* let other load events fire, like the parser, but report the error */			}		}		this._loadNotifying = false;				//Make sure nothing else got added to the onload queue		//after this first run. If something did, and we are not waiting for any		//more inflight resources, run again.		if(d._postLoad && d._inFlightCount == 0 && mll.length){			d._callLoaded();		}	}	dojo.unloaded = function(){		// summary:		//		signal fired by impending environment destruction. You may use		//		dojo.addOnUnload() or dojo.connect() to this method to perform		//		page/application cleanup methods.		var mll = this._unloaders;		while(mll.length){			(mll.pop())();		}	}	var onto = function(arr, obj, fn){		if(!fn){			arr.push(obj);		}else if(fn){			var func = (typeof fn == "string") ? obj[fn] : fn;			arr.push(function(){ func.call(obj); });		}	}	dojo.addOnLoad = function(/*Object?*/obj, /*String|Function*/functionName){		// summary:		//		Registers a function to be triggered after the DOM has finished		//		loading and widgets declared in markup have been instantiated.		//		Images and CSS files may or may not have finished downloading when		//		the specified function is called.  (Note that widgets' CSS and HTML		//		code is guaranteed to be downloaded before said widgets are		//		instantiated.)		// example:		//	|	dojo.addOnLoad(functionPointer);		//	|	dojo.addOnLoad(object, "functionName");		//	|	dojo.addOnLoad(object, function(){ /* ... */});		onto(d._loaders, obj, functionName);		//Added for xdomain loading. dojo.addOnLoad is used to		//indicate callbacks after doing some dojo.require() statements.		//In the xdomain case, if all the requires are loaded (after initial		//page load), then immediately call any listeners.		if(d._postLoad && d._inFlightCount == 0 && !d._loadNotifying){			d._callLoaded();		}	}	dojo.addOnUnload = function(/*Object?*/obj, /*String|Function?*/functionName){		// summary:		//		registers a function to be triggered when the page unloads		// example:		//	|	dojo.addOnUnload(functionPointer)		//	|	dojo.addOnUnload(object, "functionName")		//	|	dojo.addOnUnload(object, function(){ /* ... */});		onto(d._unloaders, obj, functionName);	}	dojo._modulesLoaded = function(){		if(d._postLoad){ return; }		if(d._inFlightCount > 0){ 			console.warn("files still in flight!");			return;		}		d._callLoaded();	}	dojo._callLoaded = function(){		// The "object" check is for IE, and the other opera check fixes an		// issue in Opera where it could not find the body element in some		// widget test cases.  For 0.9, maybe route all browsers through the		// setTimeout (need protection still for non-browser environments		// though). This might also help the issue with FF 2.0 and freezing		// issues where we try to do sync xhr while background css images are		// being loaded (trac #2572)? Consider for 0.9.		if(typeof setTimeout == "object" || (dojo.config.useXDomain && d.isOpera)){			if(dojo.isAIR){				setTimeout(function(){dojo.loaded();}, 0);			}else{				setTimeout(dojo._scopeName + ".loaded();", 0);			}		}else{			d.loaded();		}	}	dojo._getModuleSymbols = function(/*String*/modulename){		// summary:		//		Converts a module name in dotted JS notation to an array		//		representing the path in the source tree		var syms = modulename.split(".");		for(var i = syms.length; i>0; i--){			var parentModule = syms.slice(0, i).join(".");			if((i==1) && !this._moduleHasPrefix(parentModule)){						// Support default module directory (sibling of dojo) for top-level modules 				syms[0] = "../" + syms[0];			}else{				var parentModulePath = this._getModulePrefix(parentModule);				if(parentModulePath != parentModule){					syms.splice(0, i, parentModulePath);					break;				}			}		}		// console.debug(syms);		return syms; // Array	}	dojo._global_omit_module_check = false;	dojo._loadModule = dojo.require = function(/*String*/moduleName, /*Boolean?*/omitModuleCheck){		//	summary:		//		loads a Javascript module from the appropriate URI		//	moduleName:		//		module name to load. Module paths are de-referenced by dojo's		//		internal mapping of locations to names and are disambiguated by		//		longest prefix. See `dojo.registerModulePath()` for details on		//		registering new modules.		//	omitModuleCheck:		//		if `true`, omitModuleCheck skips the step of ensuring that the		//		loaded file actually defines the symbol it is referenced by.		//		For example if it called as `dojo._loadModule("a.b.c")` and the		//		file located at `a/b/c.js` does not define an object `a.b.c`,		//		and exception will be throws whereas no exception is raised		//		when called as `dojo._loadModule("a.b.c", true)`		//	description:		//		`dojo._loadModule("A.B")` first checks to see if symbol A.B is		//		defined. If it is, it is simply returned (nothing to do).		//			//		If it is not defined, it will look for `A/B.js` in the script root		//		directory.		//			//		`dojo._loadModule` throws an excpetion if it cannot find a file		//		to load, or if the symbol `A.B` is not defined after loading.		//			//		It returns the object `A.B`.		//			//		`dojo._loadModule()` does nothing about importing symbols into		//		the current namespace.  It is presumed that the caller will		//		take care of that. For example, to import all symbols into a		//		local block, you might write:		//			//		|	with (dojo._loadModule("A.B")) {		//		|		...		//		|	}		//			//		And to import just the leaf symbol to a local variable:		//			//		|	var B = dojo._loadModule("A.B");		//	   	|	...		//	returns: the required namespace object		omitModuleCheck = this._global_omit_module_check || omitModuleCheck;		//Check if it is already loaded.		var module = this._loadedModules[moduleName];		if(module){			return module;		}		// convert periods to slashes		var relpath = this._getModuleSymbols(moduleName).join("/") + '.js';		var modArg = (!omitModuleCheck) ? moduleName : null;		var ok = this._loadPath(relpath, modArg);		if(!ok && !omitModuleCheck){			throw new Error("Could not load '" + moduleName + "'; last tried '" + relpath + "'");		}		// check that the symbol was defined		// Don't bother if we're doing xdomain (asynchronous) loading.		if(!omitModuleCheck && !this._isXDomain){			// pass in false so we can give better error			module = this._loadedModules[moduleName];			if(!module){				throw new Error("symbol '" + moduleName + "' is not defined after loading '" + relpath + "'"); 			}		}		return module;	}	dojo.provide = function(/*String*/ resourceName){		//	summary:		//		Each javascript source file must have at least one		//		`dojo.provide()` call at the top of the file, corresponding to

⌨️ 快捷键说明

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