2014-10-16 60 views
0

我有一个问题,我正在调用一个服务器调用异步加载其他脚本的脚本,并且这些脚本包含匿名定义的模块。由于它们是异步加载的,所以在调用它们之后,Require js不会始终加载,从而导致匿名的define()错误。我试过加载通过Require调用的脚本,但结果是一样的。有没有办法解决?我正在使用外部脚本进行分析的客户端服务器上工作,并使用Require构建了整个站点。要求Js加载脚本异步调用匿名定义的模块

谢谢。

+0

请提供简洁的代码示例,否则无法猜测您的代码做错了什么。 – artm 2014-10-17 07:50:32

+0

问题更多的是一般性问题而不是特定于代码。 HTML首先加载客户端脚本>然后加载require>最终客户端脚本的异步调用将未定义的模块返回到页面。 Requirejs需要在它之前加载所有未定义的模块。我无法控制客户端的脚本。 – ajmccallum 2014-10-28 18:19:19

回答

-1

它不是因为RequireJS异步加载机制中的任何问题,而是可能是因为可能的两个原因: a。因为,你正在加载一个js文件,而js文件反过来加载它的依赖关系,你需要检查依赖关系是不是模块。如果不是,则无法直接加载它们。您可以使用RequireJS指定的垫片配置加载非AMD模块。 b。 ModuleId(相对模块URL)可能是错误的。

+0

我已经解决了这个问题,但应该简化了这个问题。 Requirejs显然需要在RequireJs文件之前加载任何具有匿名定义模块的脚本,否则会引发不匹配的模块错误。 http://requirejs.org/docs/errors.html#mismatch麻烦的是,我正在调用一个脚本来异步加载匿名模块,我无法控制该脚本。因为它是异步的,所以模块会在我的require脚本后面加载,这会引发错误。所以,我无法以合理的方式加载require。 – ajmccallum 2014-10-28 18:10:37

+0

你是怎么解决这个问题的?我遇到了类似的问题。 – 2015-02-10 20:02:06

+0

我跟实现跟踪模块的公司交谈过,他们为我定义了模块,为我创建了一个单独的版本。 – ajmccallum 2015-07-13 20:54:22