由于与问题无关的原因,我的同事需要加载一个使用通用模块定义模式的脚本。我们的环境通常会加载一个 AMD 工具,但出于更不相关的原因,我的同事需要脚本来定义全局而不是通过 AMD 注册模块。目前在他们的分支上签入的方法是这样的:
<script>
var backupDefine = define;
define = null;
</script>
<script src="../path/to/some/script/using/UMD.js"></script>
<script>
define = backupDefine;
backupDefine = null;
</script>
我的问题是:这是一个可怕的想法吗?浏览器从脚本标签加载脚本的方式是否有保证,这将确保在未定义定义和恢复定义之间除了加载基于 UMD 的脚本之外不会发生任何事情?我们有一个非常大、非常重的异步资产负载,主要基于 AMD 模块,所以我关心的是一个 AMD 模块试图在当前未定义定义的间歇状态下定义自己。