【发布时间】:2014-03-07 01:22:03
【问题描述】:
我正在实现一个面向 AMD 模块的 js 框架,该框架将用于第三方网站。
通过这一行,框架用户将配置必要的模块
<script data-main="/main.js" src="/require.js"></script>
问题在于 data-main 引用是异步加载的,因此任何依赖于 main.js 加载的模块的 js 逻辑都会失败,除非我可以确定它已完成加载。
我对 requirejs 还很陌生,所以不确定创建一个可供其他人使用的框架的好的做法是什么。
如何解决这个非常简单的问题?
编辑 一个例子来解释我的观点
main.js
requirejs.config({
paths: {
jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min',
}
});
主要 js 参考 + 额外代码
<script data-main="/main.js" src="/require.js"></script>
<script>
require(['jquery'], function($) {
// since main.js is not loaded yet, it will assume that there is a jquery.js
// file on the same folder that this file
console.log('myModule was also loaded and can use jQuery');
});
</script>
【问题讨论】:
-
看看 jQuery 的最后 20-30 行,看看是否对你有帮助。
-
@squid314:恐怕我不明白这对我的特殊情况有何帮助。你能解释一下吗?谢谢:)
-
再想一想,也许我倒退了。 jQuery 虽然不严格地打算成为 Require 管道的一部分,但它包含将自身暴露给 Require 管道的代码。请在下面查看我的答案。
-
@Louis:将
define替换为require
标签: javascript requirejs