什么是“订单!”在这个requirejs / amd模块中的指令?

时间:2017-01-25 15:03:09

标签: javascript requirejs amd

我正在研究遗留应用程序中无法正常加载javascript的情况。该应用程序使用Require.js加载多个模块,我们公司的一个模块在加载依赖项之前正在执行。

我对Require.js和AMD的体验非常有限,在研究中我注意到在某些领域,依赖项以order!字符串为前缀,例如:

define(['order!jquery', ...

而在其他地区,不使用前缀:

define(['jquery', ...

到目前为止,我找不到该指令的文档。它的作用是什么?

1 个答案:

答案 0 :(得分:1)

here

复制的完整信息
  

通常,RequireJS在未确定的情况下加载和评估脚本   订购。但是,有一些依赖的传统脚本   按特定顺序加载。对于那些情况,你可以使用   订购插件。下载插件并将其放在同一目录中   你的应用程序的主要JS文件。用法示例:

require(["order!one.js", "order!two.js", "order!three.js"], function () {
    //This callback is called after the three scripts finish loading.
});
     

订单插件加载的脚本将异步提取,但是   按照它们传递给要求的顺序进行评估,因此它仍应如此   比在HTML文档的头部使用脚本标记更好。

     

订单插件最适合与传统脚本一起使用。它不是   使用define()定义模块的脚本所需的。有可能的   混合搭配“订单!”具有常规依赖性的依赖项,但是   只有“订单!”将按相对顺序评估每个   其他

     

备注:

     
      
  • 订单!插件仅适用于浏览器可缓存的JavaScript文件。如果JS文件的标题没有   允许浏览器缓存文件,然后脚本的顺序   不予保持。
  •   
  • 不要使用订单!插件加载其他插件加载的资源。例如。不建议'order!cs!my/coffescript/module'。   在某些版本的IE和WebKit中,您将收到错误。这是由于   对于那些浏览器需要为这些浏览器做的变通方法   确保执行。
  •