dojo.require("dijit.Dialog");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.DateTextBox");
dojo.require("dijit.form.TimeTextBox");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.Tooltip");
dojo.require("dojo.parser");
dojo.require("dojo.fx");
dojo.require("dojo.dnd.Manager");
dojo.require("dojo.dnd.Source");
dojo.require("dojox.layout.ContentPane");
dojo.require("dojo.io.iframe");
这与CDN或src =“”一起出现, 并在我的页面中的inspect元素中显示了很多请求,有人知道为什么吗?
答案 0 :(得分:1)
好吧,看来你想了解flow of Dojo
我的意思是它的工作原理以及它如何加载它的依赖关系。
在上面的代码段中,我们可以看到您正在使用legacy model/version of dojo
首先,我们了解
require
和define
require
和define
是异步模块定义(AMD)API的一部分。
使用define
定义可由其他代码使用的模块。通常,define
将用于javascript文件中。 javascript文件定义了一个模块。所有Dojo文件都使用define。
在未定义模块时使用require
,但需要已定义的模块。
加载小部件
因此,在您的网络和控制台中,您可以观察到每当您加载dojo cdn链接时,它只会加载init.js
默认加载程序文件。尺寸非常小,加载方便/快捷。
所以一旦你的dojo加载器根据你的dojo configuration加载,它就会开始寻找你在项目中使用的依赖项,这样你提到的小部件(dojo controls, classes, files etc.
)需要它才会开始加载来自CDN的那些小部件。
在这种情况下,dojo不会在您的prject中加载整个dojo库,它只会加载您在require
中提到的那些小部件。
希望这能解答您的疑虑:)