async import js files within other js file
JavaScript
Latest commit 29bd0a1 May 4, 2011 @neekey 1.0.1.20110504-beta-release
Permalink
Failed to load latest commit information.
README
importJS.js
importJS_complied.js

README

/**
 * 纯客户端的 JavaScript import 实现
 * 
 * @author Neekey <ni184775761@gmail.com>
 * @version 1.0.1.20110504 beta release
 * javascript&import功能的实现
 * 思路:
 * 			主要通过将所有需要包含的js文件异步加载,然后对加载的脚本进行分析,若脚本中包含对其
 *		他脚本文件的导入,则再异步加载其他文件,直到所有文件都下载完毕后,对代码重新进行组织,最
 *		后通过动态添加<script>标签,并设置其text属性实现代码的执行
 *
 * @example
 * -----------------------------------------------------------------------------
 * 	<script src='import.js'></script>
 * 	<script>
 * 		import.load(['a.js', 'b.js', 'c.js'],  rehandleCallback).load(['d.js']);
 * 	</script>
 *
 * -----------------------------------------------------------------------------
 * 	在文件a.js 可以利用以下方式导入其他文件:
 * 		//@import(../d.js).viewHandle	
 *		// viewHandle 与上面的 rehandleCallback功能一致,预处理函数的定义见下面的配置
 *
 *		//@import(e.js)
 * 		someting code.....
 * 	
 * -----------------------------------------------------------------------------
 * 配置:
 *	importJS.config({
 *		basePath: 'http://neekey.net/',
 *		customCallback: {
 *			viewHandle: function(script){
 *				return 'alert("this is a handled script!")' + script;
 *			}
 *		}
 *	}
 *
 * -----------------------------------------------------------------------------
 * 关于@预处理函数:
 *			主要提供一个自定接口. 比如 想在自己的脚本中通过其他方式如: load.model('ajax'); 
 *		来载入一个 model/ajax.js 文件。那么在预处理函数中,用户可以自己预检测脚本中是否含有
 *		"load.model('ajax');", 如果有,那么在脚本开头添加 “@import(model/ajax.js)
 */