【问题标题】:Multiple Requirejs on the same page同一页面上有多个Requirejs
【发布时间】:2012-09-17 22:16:49
【问题描述】:

我正在为我们的客户做一个嵌入代码,所以客户可以有多个嵌入我们的代码(不能在 iframe 上做)。我想尝试 requirejs 来做,所以我的问题是,如果我在同一页面上有多个 requirejs,都使用不同的路径+垫片加载不同的 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 开始,这两个函数似乎不可能被执行,这意味着它只会处理其中一个。

如果在 requirejs 中不可能,有人可以在可能的情况下将我指向其他 amd 加载器。谢谢

【问题讨论】:

  • 为什么要将配置选项放在两个不同的位置?
  • 因为我们的客户必须分别有 2 个以上的嵌入,其中一个嵌入将在所有页面中,而另一个将在特定页面中,配置选项将根据后端动态创建嵌入是

标签: javascript requirejs js-amd


【解决方案1】:

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

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

【讨论】:

  • 我不能这样做,因为客户不必分别有 2 个嵌入,一个嵌入将在所有页面中,而另一个将在特定页面中
【解决方案2】:

看看 Shootitlive 如何用他们的小部件解决这个问题

  • 可以向每个嵌入传递任意参数
  • 嵌入代码很短
  • 异步加载
  • 一个页面上可以有多个播放器

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

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    相关资源
    最近更新 更多