同一页面上有多个Requirejs

时间:2012-09-17 22:16:49

标签: javascript requirejs js-amd

我正在为我们的客户执行嵌入代码,因此客户端可以多次嵌入我们的代码(无法通过iframe执行)。我想尝试requirejs来做,所以我的问题是如果我在同一页面上有多个requirejs,加载不同的路径+ shims的不同js,它们的oncomplete函数是否都能工作?

就像客户端对主要内容(在特定页面上的cms上)所拥有的那样

<script src="myexample.com/video.js?key=123"></script>

并在侧边栏上(在所有页面上的cms上)

<script src="myexample.com/content.js?key=123"></script>

所以我的video.js会有

require.config({path: { video : '' }..., shim : {} ....});
require(['video','utils'], function(){ do something on video });

并且content.js会有

require.config({path: { content : '' }..., shim : {} ....});
require(['content','dom'], function(){ do something on content });

从我这里https://groups.google.com/forum/?fromgroups=#!topic/requirejs/MwQ-CNHxGKc开始,似乎不可能执行2个函数,这意味着它只会处理其中一个函数。

如果在requirejs中不可能,有人可以指向其他可能的amd加载器。感谢

2 个答案:

答案 0 :(得分:0)

您可以使用一个带有最小功能的加载器来启动两个模块:

require(['video','content'], function(video, content){
   video.start();
   content.start();
});

答案 1 :(得分:0)

看看Shootitlive如何通过他们的小部件解决它

  • 可以将任意参数传递给每个嵌入
  • 嵌入代码很短
  • 以异步方式加载
  • 一个人可以在一个页面上拥有多个玩家

http://shootitlive.com/2012/07/developing-an-embeddable-javascript-widget/