一个浏览器端加载基于AMD加载JS的实现

未测试:

AMD:

define, require

const modules = [];

loadScript = function(script, cb){
	// 浏览器加载script
	
	script.onLoad = function(){

	}
}

load = function(module, cb){
	loadScript(module.path, cb);
}

loadModules = function(ids, cb){
	var done = function(){
		if(ids.every( id => cache[id].load)){
			cb.apply({}, ids.map(id => cache[id].fn));
		}
	};

	ids.map(id => {
		if(!cache[id].load){
			load(cache[id], done)
		}
	})
}

define = function(id, deps, fn){
	cache[id] = {
		load: true,
		deps: deps,
		fn: fn,
	}
}

require = function(deps, fn){
	loadModules(deps, function(modules){
		fn.apply({}, modules);
	})
}

转载于:https://my.oschina.net/u/867090/blog/1586987

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值