单击按钮时加载所需的 dojo 文件

loading required dojo files when button clicked

我正在开发的应用程序正在加载 1200 个与应用程序相关的 dojo 文件,因为此页面需要 1 分钟才能加载,现在我想减少它的加载时间。

所有 1200 个文件我在开始时不需要,但在单击按钮时需要它们。任何人都可以建议我如何在单击按钮时加载 dojo 文件,而不是在开始时一次加载每个文件。

在此先感谢寻求帮助。

如果您要加载 1200 个文件,您可能应该查看 Dojo Build System,这应该可以让您减少加载的文件数量。

无论如何,如果您想在单击按钮时加载文件,那么您将加载模块 (require()) 的代码移动到事件处理程序中?例如:

require(["dojo/dom", "dojo/on", "dojo/domReady!"], function(dom, on) {
  on(dom.byId("myId"), "click", function() {
    require(["module1", "module2"], function(module1, module2) {
      // Do stuff
    });
  });
});

Dojo 将只加载模块一次,并且每次您请求时 return 加载相同的实例,因此这样做不会产生额外的网络请求。

但是无论如何,如果您正在加载 1200 个文件,那么您就会遇到问题,而不是寻找如何延迟加载这 1200 个文件,您应该尝试找出它加载 1200 个文件并最终删除一些依赖项的原因.