AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里?

Posted

技术标签:

【中文标题】AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里?【英文标题】:AMD/Dojo 1.7 Single Page App: Where to put the Require()'s? 【发布时间】:2012-06-25 17:44:59 【问题描述】:

我有一个大型单页应用程序,我正在迁移到 Dojo 1.7/AMD 加载程序语法。

我有一个加载所有内容的主 JSP,然后是用于动态内容生成的大量 JSP 页面。

在整个应用程序周围或在必要模块的每个实例周围添加 require() 块是更好的设计决策吗?

还是某种组合?将最常见的require()添加到主页面,然后遍历查找其他需要包装的实例?

【问题讨论】:

【参考方案1】:

你应该尽可能地延迟加载;也许在“动态内容”JSP 页面级别。它非常清楚每个页面需要什么,并且将 requires() 靠近使用导入模块的代码更清晰。

它还减少了加载主页所需的时间,这意味着用户可以在更短的时间内与应用程序交互。这是一件好事。

【讨论】:

关键是使用构建过程构建一个基础层,该构建过程提供您可以证明在每个页面上加载的模块。因此,对我们而言,它最终包含最常见的 dijit 表单输入小部件(文本、选择、按钮等)和所有这些依赖项。之后,附加层不应包含基础层已经提供的模块,而应将基础层作为依赖项。 啊,好提示。我仍在学习 Dojo 构建过程的工作原理。 @Andrew - 如果您将粘贴到您的一般页面包含中,那就太棒了。对于您是否需要明确包含“dojo”和“dojox”之类的内容,我仍然有点模糊。 @mtyson - 通常您的层不需要 dojo/dijit/dojox 依赖项,除非您希望包含这些依赖项。因此,如果您有一组小部件(myCompany.MyWidget 等),那么您的图层文件将是您制作的小部件列表,如果它们依赖于 dojo/dijit/dojox 的东西,它将自动包含在内。但是,如果您直接使用 dijit/dojo 的东西,您也需要在您的图层文件中列举它们。这是非常有情境的。 @mtyson - 查看构建工具生成的构建报告,它将列出层中包含哪些模块。

以上是关于AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

更新 Stripe 付款金额

Spring Security 和单页应用程序

如何在单页应用程序中以角度将数据从一页传递到另一页

检查用户名是不是被使用 - PassportJS

将 req.user 传递给 graphQL

如何将 MSAL(Microsoft Authentication Library for js)正确导入和使用到 typescript react 单页应用程序中?