gpt4 book ai didi

requirejs - 异步时的行为 : false and true

转载 作者:行者123 更新时间:2023-12-02 23:51:47 25 4
gpt4 key购买 nike

我正在使用 AMD 编码方式,当我设置 async: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>

输出:在这两种情况下,我首先看到“我在 DOM 内部准备就绪”,然后是“我在内部准备就绪”警报。

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

谢谢。

最佳答案

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

这是 Dojo AMD 描述的片段:

For backwards-compatibility, the loader starts up in synchronous mode by default, which loads the Dojo base API automatically:

<script src="path/to/dojo/dojo.js"></script>
<script>
// the dojo base API is available here
</script>

To put the loader in the AMD mode, set the async configuration variable to truthy:

<script data-dojo-config="async: 1" src="path/to/dojo/dojo.js"></script>
<script>
// ATTENTION: nothing but the AMD API is available here
</script>

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

关于requirejs - 异步时的行为 : false and true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com