requireJS异步加载

Posted 天下无双之盛世奇观

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requireJS异步加载相关的知识,希望对你有一定的参考价值。

requireJS的核心实现

可以将模块抽象成下面的对象

一个模块可以理解为一个JS文件,具有三个属性:deps(模块的依赖),callback(模块的回调,在所有依赖load之后执行),listener(模块的监听,里面存放当该模块加载完毕,需要通知的对象)

模块加载的核心函数:

fetch --->  加载模块JS文件,并设置回调,当script执行完毕,(也可能模块之前通过define定义过,不是JS文件的模块)触发load方法

load --->   判断fetch结果,若未fetch完,继续fetch;若已经fetch完,递归载入依赖模块,在所有模块载入完毕后(子模块通过自身的listener通知),执行callback,并通过listener通知

以上是关于requireJS异步加载的主要内容,如果未能解决你的问题,请参考以下文章

RequireJS 啥时候需要异步调用?啥时候同步?

requireJS搭建

requireJS,browserify 和 webpack

vue异步组件和vue.router异步加载

如何解决requireJs的模块加载超时

带有小型初始脚本和所有其他脚本的异步加载的 Webpack