我正在研究遗留应用程序中无法正常加载javascript的情况。该应用程序使用Require.js加载多个模块,我们公司的一个模块在加载依赖项之前正在执行。
我对Require.js和AMD的体验非常有限,在研究中我注意到在某些领域,依赖项以order!
字符串为前缀,例如:
define(['order!jquery', ...
而在其他地区,不使用前缀:
define(['jquery', ...
到目前为止,我找不到该指令的文档。它的作用是什么?
答案 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中,您将收到错误。这是由于 对于那些浏览器需要为这些浏览器做的变通方法 确保执行。