簡體   English   中英

使用 dojo 向服務器發出許多請求

[英]Many requests to server with dojo

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="" 一起出現,並在我的頁面中的檢查元素中顯示了很多請求,有人知道為什么嗎?

好吧,您似乎想了解flow of Dojoflow of Dojo我的意思是它如何工作以及如何加載其依賴項。

在上面的代碼片段中,我們可以看到您使用的是 舊版模型/dojo 版本

首先我們了解requiredefine

requiredefine是異步模塊定義(AMD) API 的一部分。

您可以使用define來定義一個可以被其他代碼使用的模塊。 通常, define將用於 javascript 文件中。 javascript 文件正在定義一個模塊。 所有 Dojo 文件都使用define。

當您不定義模塊但需要已定義的模塊時,您可以使用require

加載小部件

因此,在您的網絡和控制台中,您可以觀察到,每當您加載 dojo cdn 鏈接時,它只會加載init.js默認加載器文件。 體積非常小,加載容易/更快。

因此,一旦您的 dojo 加載器根據您的dojo 配置加載,它就會開始尋找您在項目中使用的依賴項,以便您在 require 中提到的小部件( dojo controls, classes, files etc. )將開始從以下位置加載這些小部件CDN。

在這種情況下,dojo 不會在您的項目中加載整個 dojo 庫,它只會加載您在require提到的那些小部件。

希望這能解決您的疑慮:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM