使用RequireJS时包含在所有页面上的常用JavaScript代码

时间:2012-11-27 10:59:48

标签: javascript requirejs

如何使用RequireJS,并为所有页面提供一些通用的JavaScript代码?如果我在模板中有一个带有datamain的脚本标记(在所有页面上使用),那么我可以在其他需要他们需要的页面上有一个require(...)吗?这会导致加载顺序出现问题吗?会的吗?我还想在模板中有第二个脚本标记,它包含所有公共代码(在RequireJS之外)。这是唯一的方法吗?

2 个答案:

答案 0 :(得分:1)

强文>如何使用RequireJS,并为

提供一些常用的JavaScript代码
  

所有页面?

这个问题的答案有用 - How does RequireJS work with multiple pages and partial views?

  

然后我可以在需要什么的其他页面上有一个require(...)   他们需要?这会导致加载顺序出现问题吗?它   会的吗?

不,这很好。如果您愿意,可以调用同一个模块,只能加载一次。一个常见示例是需要jquery的多个必需调用。你每次都需要它以确定它的存在,但是没有惩罚,因为RequireJS足够聪明,只能获取它一次。

编辑以回答评论: 请求jQuery和/或jQuery UI作为依赖关系来定义或要求,然后回调将执行:

require(['jquery', 'jquery-ui'], function($) {
    // jQuery is passed in as first argument but as jquery-ui
    // merely augments jQuery we don't need it as the second argument
});

这是RequireJS的真正基础(需要依赖项并在它们准备就绪时执行代码),因此可能值得拥有detailed read of the documentation (which is superb)

最后要注意的是,您需要在paths配置中设置jQuery的路径,并且我不确定jQuery UI是否将自身注册为模块。如果没有,您需要使用shim配置选项

答案 1 :(得分:0)

创建文件并将代码放在其中

    define(function () {
            this.myProp = '';
    }) 

在requirejs.conf

中设置文件的路径
    path { myfile: 'js/myfile'} 

您现在可以像这样加载

require([myfile], function (myfile) {
    console.log(myfile.myProp)
})