许多使用dojo的服务器请求

时间:2016-09-28 21:30:07

标签: server dojo request inspect

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元素中显示了很多请求,有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

好吧,看来你想了解flow of Dojo我的意思是它的工作原理以及它如何加载它的依赖关系。

在上面的代码段中,我们可以看到您正在使用legacy model/version of dojo

  

首先,我们了解requiredefine

requiredefine是异步模块定义(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中提到的那些小部件。

希望这能解答您的疑虑:)