在错误位置寻找模块的代码

2024-04-10

我使用 build.dojotoolkit.org (我的第一次尝试)创建了一个包含 3 层的多层构建:dojo.js、dojox.js、dijit.js。每个 js 文件都上传到自己的文件夹中(dojo、dojox、dijit)。

当我运行代码时,我希望它在 dijit.js 中查找以获取像 dijit.form.TextBox 这样的表单模块。但相反,它尝试加载 dijit/form/TextBox.js,当然最终会出现 404 错误。

我究竟做错了什么?

如果有帮助的话,这些文件就在这里:http://usermanagementsolutions.com/Demos/Pages http://usermanagedsolutions.com/Demos/Pages


手动将每个图层包含在页面上的脚本标记中。

<script src="path/to/dojo.js" />
<script src="path/to/dojox.js" />
<script src="path/to/dijit.js" />

这将使您在构建中定义的所有模块可用。当您需要文本框时,Dojo 将看到它具有代码,并且不会进行 XHR 调用。

即使您无意使用各个文件,您也可能希望将它们放在服务器上。这样,如果有人忘记将文件添加到构建中,则会产生 xhr 请求,而不是 javascript 错误。


Re: AMD

当您按照我上面描述的方式包含层时,您不会加载构建中包含的所有模块 - 您只是使定义函数可用,而无需发出 xhr 请求。

如果您查看构建输出的 js 文件,该文件包含模块路径到函数的映射,该函数在调用时将定义该模块。

所以当你写下下面的代码时

require(["dijit/form/TextBox"], function(TextBox){
  ...
});

AMD 将首先确定是否dijit/form/TextBox已经被定义了。如果是这样,它将只获取该对象并执行回调。

如果模块尚未定义,AMD 将查看其缓存以查看定义代码是否可用。当您包含脚本文件时,您就提供了定义函数的缓存。 AMD 找到定义模块的代码。它调用此定义函数,结果是传递到回调中的对象。后续需要dijit/form/TextBox也将如上所述使用该对象。

如果模块尚未定义,并且 AMD 在其缓存中未找到定义函数,则 AMD 将向服务器发出 XHR 请求,以尝试找到特定的模块代码。 XHR 调用的结果应提供定义函数。 AMD 将调用该函数并将结果用作传递给回调的对象。再次,后续要求dijit/form/TextBox也会使用这个对象。

Dojo 构建提供了 1) 缩小代码和 2) 将其组合成需要从服务器请求的更少文件的能力。

AMD 允许您编写可以在任一环境中运行的代码(使用构建文件或单个文件),而无需进行修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在错误位置寻找模块的代码 的相关文章

  • Python使用sudo启动时找不到模块

    我有一个使用 Google Assistant 库的脚本 并且必须从那里导入一些模块 我发现这只适用于 Python 虚拟环境 这真的很奇怪 在同一个文件夹中 我有一个使用 GPIO 引脚并且必须使用 root 的脚本 它们相互交互 因此当
  • 在android studio中重命名根模块

    如何在android studio中重命名根模块 我已经尝试过 右键单击模块 然后单击重构 然后单击重命名 但我收到警告 无法重命名根模块 I pressed Ctrl Shift F to search my current root m
  • python -m:查找模块规范时出错

    根据 python 文档 m标志应该执行以下操作 在 sys path 中搜索指定模块并执行其内容 main module 当我简单地运行我的脚本时python命令 一切正常 由于我现在想从更高级别导入某些内容 因此我必须使用以下命令运行脚
  • module.exports 返回未定义

    我目前是新来的Node JS 今天我试图read文件中的数据data json 这是 JSON 文件 username rahul v7 password 9673 username 7vik password 3248 username
  • VBA更改模块中的实例变量(excel)

    在 VBA 中 我需要一个模块 sub 来告诉实例设置一些变量 在模块 1 中我有 Sub Load ThisWorkbook SetupVariables ThisWorkbook TestVariables End Sub 在本工作簿中
  • 没有这样的模块“SwiftyDropbox”

    首先 我正在使用 Xcode 8 和 Swift 3 现在我想将 Dropbox API SwiftyDropbox 集成到我的应用程序中 因为我对 iOS 编程很陌生 所以我不确定我是否正确完成了所有步骤 我决定使用 CocoaPods
  • 模块之间共享资源的良好做法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将 Typescript 模块转换为 JavaScript

    我有一个像这样的 src 工作目录 src functions final utils I have two文件 都在 final 内 我需要将其从打字稿转换为JavaScript才能在浏览器中运行 问题是 我的最终文件正在从其他 src
  • DBD::Oracle 安装导致错误

    我想通过 Perl 连接到 Oracle 数据库 为此 我尝试使用以下命令从 CPAN 安装 DBD Oracle root localhost Admin cpan DBD Oracle 在我的 Linux 终端上运行上述命令时 出现以下
  • 如何制作Python模块或函数并在编写其他程序时使用它?

    在很多情况下 我必须在多个程序中一遍又一遍地编写大行代码 所以我想知道是否可以只编写一个程序 保存它 然后在不同的程序 例如函数或模块 中调用它 一个基本的例子 我编写一个程序来检查一个数字是否是回文 然后我想编写一个程序来检查一个数字是否
  • TypeScript 模块

    我想知道是否有可能以某种方式将两个或多个文件中的两个或多个类添加到 TypeScript 中的同一模块中 像这样的事情 src gui uielement ts module mylib module gui export interfac
  • 我想要动态加载到入口点的 Webpack 捆绑模块

    下面的代码似乎使用动态导入 https webpack js org guides code splitting dynamic imports function executeApplication void const loadData
  • Python 的“导入”内部是如何工作的?

    当您导入一个模块 然后再次重新导入它时 它会被重新导入 覆盖还是跳过 当您导入模块 a 和 b 并且还在模块 a 中导入模块 b 时 会发生什么 这样做安全吗 例如 如果该模块 b 中有一个实例化的类 您最终会实例化它两次吗 import加
  • 为什么导入的函数“作为”另一个名称保留其原始 __name__ ?

    Here from os path import exists as foo print foo name we get exists 为什么不 foo 哪个属性会给出 foo 您可以查看import foo as bar只是一个任务 你不
  • ruby/rails:扩展或包含其他模块

    我将模块分开 以便它们更易于阅读和搜索 lib features running rb walking rb features rb 他们有 lib features running rb module Features Running e
  • 代码高尔夫!有没有一种简单的方法可以在Python中将字母转换为数字?

    你知道 比如 A 1 B 2 等 我可以列出一长串 if then 但也许已经有一个模块了 如果它像 Excel 坐标 中那样工作 其中 A 27 并继续 那就更好了 这算不算 26 进制数 def foo c return ord c 6
  • TypeScript 扩展模块中的对象

    我想做的事情确实类似于this https stackoverflow com questions 12802383 extending array in typescript and this https stackoverflow co
  • dojo.parser.parse 仅在第一次调用时工作

    我有一个页面 当用户单击某些报告工具的链接时 它首先要求他们输入一些报告参数 我根据链接的 id 使用 AJAX 以表单形式获取参数对话框 每个对话框上都有一些 dojo 控件 因此我需要在对话框出现时解析它们 因为它最初不是页面的一部分
  • 查找多模块 Maven Reactor 项目的根目录

    有没有一种简单的方法可以找到多模块 Maven 项目的根 例如 Gradle 的rootDir 背景 我想使用 maven dependency plugin 将多模块项目的所有子模块中的工件复制到相对于整个项目的根目录的目录 也就是说 我
  • 在 Angular 中使用多个模块有什么好处?

    我是 Angular Js 的熟悉者 最近我发现在一些项目中 在主模块中创建并组装了多个 Angular 模块 代码看起来像 angular module main main sub1 main sub2 main sub2 angular

随机推荐

  • 如何正确地将日期转换为字符串并以 symfony 形式转换回来,以便可以使用日期选择器

    在我的 Symfony 4 应用程序中 我有一个包含日期类型字段的实体 默认情况下 Symfony 将其呈现为一组月 日 年的选择框 我已将其更改为文本小部件 以便我可以使用 jQuery UI 日期选择器 但我在尝试提交表格时遇到了问题
  • SCOM 上的 PowerShell 无法导入模块

    我有一个问题 如果没有帮助 我无法解决 我在第一台 PC 上有 SCOM 在第二台 PC 上有 SCOM 代理 当我的类在代理 PC 中发现时 它必须运行 PowerShell 脚本 该脚本包含命令 导入模块故障转移集群 但此命令失败并出现
  • 是什么导致 Web 服务 URL 和命名空间之间存在差异?

    我有一个包含 Web 服务的 ASP NET Web 项目 当我运行该服务时 它会将我带到一个显示所有公开方法的页面 使用类似于以下内容的 URLhttp api example com game service asmx 在 Web 服务
  • MySql - 大小 VARCHAR

    很多人对我说设置 VARCHAR 100 没有意义 它与 put 255 相同 我想知道为什么 那是垃圾 他们可能正在谈论这样一个事实 varchar无论最大长度是 100 还是 255 超过该长度的长度将使用两个字节 最多 64K 都使用
  • 关于 NSRunLoop,需要澄清

    When i Logger logger Logger new NSURL url NSURL URLWithString http www google com NSURLRequest request NSURLRequest requ
  • 如何使用 Linq To XML 获取元素值

    使用 Linq To XML 如何从下面的 xml 中获取 space id 值 720 我在读this http msdn microsoft com en us library bb308960 aspx但我认为xml中的命名空间是我的
  • 让 GitLab CI 克隆私有存储库

    我设置了 GitLab 和 GitLab CI 来托管和测试我的一些私人存储库 对于此系统下的作曲家模块 我设置了 Satis 来解析我的私有包 显然这些私有包需要 ssh 密钥来克隆它们 并且我在终端中可以使用它 我可以运行compose
  • ADO.Net (Azure AD) 错误“不支持关键字:身份验证”

    我正在尝试通过 C 代码使用 Azure AD 凭据连接到 Azure 数据库 代码如下 它在我的系统上运行良好 但是当我将它部署到32位VM时 它显示错误 不支持关键字 身份验证 VM 安装了 Net Framework 4 5 但未安装
  • 仅 Detox 测试启动画面

    我正在我的 React Native 项目上运行 detox 并且只能测试启动屏幕 启动屏幕进入登录屏幕 但排毒代码不允许我测试此元素 测试代码 describe Splash gt beforeEach async gt await de
  • java - 如何检查我的对象是否属于给定类的类型?

    我的方法获取 Class 作为参数 我必须检查我的变量是否属于 class 类型 Volvo v1 new Volvo Class aClass v1 getClass check aClass 在里面我需要做类似的事情 v2 instan
  • 输出到另一个窗口

    有没有办法直接在 VB NET 中打开窗体并在第二个监视器中最大化 也就是说 如果显示两个监视器 默认情况下第二个窗口中的表单加载会最大化吗 假设一个程序是用两种形式编写的 并且一台计算机连接了两个显示器 我希望 FormA 默认显示在 M
  • PyCharm:无法使用 docker-compose 创建远程 python 解释器

    尝试在 PyCharm 中创建 docker compose python 解释器时出现错误 解析 Users belek Projects project docker compose yml 时出错 进程docker compose c
  • 按一列中的因素拆分/子集数据框[重复]

    这个问题在这里已经有答案了 我的数据是这样的 例如 ID Rate State 1 24 AL 2 35 MN 3 46 FL 4 34 AL 5 78 MN 6 99 FL Data structure list ID 1 6 Rate
  • 致命错误:AST 文件格式错误或损坏 - Xcode

    在最新版本的 Xcode 中构建我的应用程序时出现此错误 致命错误 AST 文件格式错误或损坏 无法加载模块 Users me Library Developer Xcode DerivedData ModuleCache XYZYIE6Z
  • CMake FindThreads.cmake 找不到我的 pthreads.h 标头

    我在用着android cmake http code google com p android cmake 编译 Android 应用程序 这实质上创建了一个 CMake 工具链文件 用于使用 Android NDK 提供的工具链 As
  • Markdown 中的 RTL

    是否有任何现有的 Markdown 插件规范包含对 RTL 语言的支持 我希望是这样的 This paragraph is left to right lt This paragraph is right to left 或者其他什么 我可
  • Jquery Sortable,通过拖出删除当前Item

    我的问题 sortable 事件 out 当我在列表中拖动某些内容或对列表进行排序时触发 但我只想在拖出项目时启动该功能 My code document ready function ust div1 sortable out funct
  • 正则表达式最多匹配 4 个空格

    我有一个正则表达式来匹配一个人的名字 到目前为止 我有 a zA Z s 但我想添加一个检查以允许最多 4 个空格 我该如何修改它才能做到这一点 Edit 我的意思是字符串中任意位置有 4 个空格 不要尝试使用正则表达式验证名称 人们可以随
  • 如何使用 Bincode 在 Rust 中序列化 Enum,同时保留 Enum 判别式而不是索引?

    我一直在使用 bincode 在 Rust 中序列化枚举 但我面临一个问题 我收到枚举变体的索引而不是其指定的判别式 这是我尝试序列化的枚举的示例 derive Debug PartialEq Eq Serialize Deserializ
  • 在错误位置寻找模块的代码

    我使用 build dojotoolkit org 我的第一次尝试 创建了一个包含 3 层的多层构建 dojo js dojox js dijit js 每个 js 文件都上传到自己的文件夹中 dojo dojox dijit 当我运行代码