Requirejs 异步时的行为:false和true

Requirejs 异步时的行为:false和true,requirejs,dojo,amd,dijit.form,Requirejs,Dojo,Amd,Dijit.form,我使用AMD的编码方式,当我将async:false设置为false时,我看不到执行行为的任何差异,即将async设置为true或false时,我看不到任何差异 请看下面的代码片段: <html> <script type="text/javascript" src="../../dojoroot/dojo/dojo.js" data-dojo-config="async:true, parseOnLoad:true"></script> <scrip

我使用AMD的编码方式,当我将async:false设置为false时,我看不到执行行为的任何差异,即将async设置为true或false时,我看不到任何差异

请看下面的代码片段:

<html>
<script type="text/javascript" src="../../dojoroot/dojo/dojo.js" data-dojo-config="async:true, parseOnLoad:true"></script>

<script type="text/javascript">
require(["dojo/domReady!"], function(){
alert("I am inside DOM ready");
});

require(["dojo/ready"], function(ready){
    ready(function(){
    alert("I am inside ready");
  });
});
</script>
<body>
some div's here
</body>
</html>

require([“dojo/domReady!”],function(){
警惕(“我在DOM内准备就绪”);
});
require([“dojo/ready”],函数(ready){
就绪(函数(){
警惕(“我在里面准备好了”);
});
});
有人来了
输出: 在这两种情况下,我首先看到“我在DOM内部就绪”,然后看到“我在DOM内部就绪”警报

请您解释一下,如果我添加async:true和async:false,有什么区别


谢谢。

为了回答您的问题,如果
async
设置为truthy值(
true
1
,等等),调用
require
时将加载
dojo/domReady
dojo/ready
。如果未设置
async
,则在加载
dojo.js
时会立即加载这些模块。因此,对代码的执行方式没有影响,只是这些模块何时可用

这是Dojo AMD描述中的片段:

为了向后兼容,加载程序默认以同步模式启动,这将自动加载Dojo base API:


//dojo基本API在这里可用
要将加载程序置于AMD模式,请将异步配置变量设置为truthy:


//注意:这里只提供AMDAPI
请注意,您只能在加载dojo.js之前设置async标志,并且在AMD模式下,dojo Base和任何其他库都不会自动加载-完全由应用程序决定加载哪些模块/库