文档章节

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

BryanYang
 BryanYang
发布于 2017/12/08 16:41
字数 96
阅读 290
收藏 0

未测试:

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);
	})
}

© 著作权归作者所有

BryanYang
粉丝 16
博文 165
码字总数 52036
作品 0
石景山
程序员
私信 提问
加载中

评论(0)

一览js模块化:从CommonJS到ES6

在这篇文章中: 0.早期:用script来引入js模块 1.CommonJS 规范 2.AMD和require.js 3.CMD和sea.js 4.ES6模块化 5.小结 模块化是指把一个复杂的系统分解到一个一个的模块。 模块化开发的优点:...

前端林子
2018/12/22
0
0
Javascript模块化编程(二):AMD规范

原作者:阮一峰 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块。 (接上文) 七、模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方...

Idiot_s_Sky
2014/03/09
84
0
js模块化编程之彻底弄懂CommonJS和AMD/CMD!

先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你...

娇娇jojojo
2018/07/20
41
0
Javascript模块化编程(二):AMD规范

七、模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 但是,这样做有一个前提,那就是大家必须以同样的方式编写...

rocet
2014/03/28
114
0
JavaScript模块化进阶

写在前面 模块化简单来说就是是指把一个复杂的系统分解到多个模块以方便编码。JS模块化的大致流程为:CommonJS(服务端) -> AMD(浏览器端)-> UMD(兼容了CommonJS和AMD) -> ES Module(E...

Jee
2018/12/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Flume概述及组成

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并...

长臂猿猴
7分钟前
43
0
将较小的显示器切换到较大的显示器时,有没有办法重新绘制tmux窗口?

假设您使用Terminal.app通过ssh连接到远程服务器。 当您使用较大的分辨率监视器“tmux attach”时,您之前启动了tmux,它会在控制台周围绘制点。 它不适合新的窗口大小。 有没有办法重绘和清...

技术盛宴
15分钟前
28
0
在两个日期之间查找对象MongoDB

我一直在围绕在mongodb中存储推文,每个对象看起来像这样: {"_id" : ObjectId("4c02c58de500fe1be1000005"),"contributors" : null,"text" : "Hello world","user" : { "following......

javail
30分钟前
35
0
《aelf经济和治理白皮书》重磅发布:为DAPP提供治理高效、价值驱动的生态环境

2020年2月17日,aelf正式发布《aelf经济和治理白皮书》,这是aelf继项目白皮书后,在aelf网络经济模型和治理模式方面的权威论述。 《aelf经济和治理白皮书》描述了aelf生态中各个角色及利益的...

AELF开发者社区
41分钟前
44
0
战疫 | 高德工程师如何在3天上线“医护专车”

新冠状病毒肺炎疫情突袭,无数医护人员放弃与家人团聚,明知凶险,仍然奋战在一线。但因为武汉公交、地铁、网约车停运,医护人员上下班很难。白衣天使疾呼打车难。 (截图摘自《财经国家周刊...

amap_tech
53分钟前
41
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部