Coffeescript、Backbone 和加载顺序

2024-02-25

考虑这个 Coffeescript 类,在一个应用程序中,每个类都位于自己的文件中。

class Manager extends Person
  title: titles["manager"]

如果该文件在“title”对象之前加载,则会生成错误。我假设这是因为 Coffeescripts 安全包装器在首次加载该文件时正在执行“.call(this)”?

否则,如果我要延迟运行任何代码,直到整个页面完全加载($(document.ready())),我可以确保所有 javascript 文件在任何代码实际运行之前都已完全加载。

这不会造成一些烦人的加载顺序问题,还是我做错了什么?


不可能都是订单问题and包装问题。用立即运行的函数包装某些内容不会影响顺序,只会影响范围。

And if titles在另一个文件中定义,然后范围class Manager没关系。所以,这是一个顺序问题。怎么titles定义?

如果我要延迟运行任何代码,直到整个页面完全加载($(document.ready())),我可以确定所有 javascript 文件在任何代码实际运行之前都已完全加载。

不完全的。$(document).ready()(注意括号——没有document.readyfunction...) 延迟函数的执行,直到加载了页面的所有 HTML,这并不意味着所有 JavaScript 都已加载。好消息是:从 JavaScript 代码的角度来看,其他 JavaScript 文件是否已加载并不重要,因为它们都是按顺序运行的。 (Note:我在这里假设你没有做任何花哨的事情,比如添加额外的<script>来自 JavaScript 代码的标签。)所以只要你有

<script src="titles.js"></script>
<script src="Manager.js"></script>

你可以放心Manager.js只会在之后运行titles.js has.

Warning!依靠$(document).ready()排序 JS 代码是一个常见错误,可能会导致混乱!如果你的 HTML 看起来像这样

<script src="Manager.js"></script>
<script src="titles.js"></script>

where titles.js创建一个名为的全局titles and Manager.js看起来像这样

$(document).ready ->
  console.log titles

那么输出将有时 be titles, and 有时 be undefined。为什么?因为作为the docs http://api.jquery.com/ready/ say,

If .ready()在 DOM 初始化后调用,传入的新处理程序将立即执行。

当第一个 JS 文件运行时,DOM 可能已经被初始化了! (实际上,如果浏览器缓存了页面的 HTML,则很可能会发生这种情况。)

所以,保持简单。只需按正确的顺序加载脚本即可。请记住,出于所有实际目的,您的脚本会由浏览器按顺序连接在一起,形成一个 JS 文件。

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

Coffeescript、Backbone 和加载顺序 的相关文章

  • Mongoose:Coffeescript 中的递归嵌入文档

    基于这个例子 https github com LearnBoost mongoose blob master examples schema js 有效 var Comment new Schema Comment add title t
  • 如果存储库中存在更新版本的依赖项,如何使 Maven 构建失败?

    好吧 问题是我希望 maven 检查构建时的依赖版本 并警告我是否有任何较新的依赖版本 事实上 如果我使用某些模块的过时版本 请通知我 我的 Maven 模块 A 有以下依赖项
  • 使用 requirejs 和 r.js 优化器时无法加载 jQuery 插件

    我的 requirejs 优化器遇到了一些麻烦 运行优化器后 我在构建 编译文件中收到一些错误消息 在没有优化步骤的情况下运行我的网络应用程序时 我没有任何错误 这是我的 client js 文件 包含配置 coffeescript req
  • CoffeeScript 智能感知

    我使用 Visual Studio 进行开发 并且非常习惯 Intellisense 但是在编写 CoffeeScript 时 您并没有真正获得任何语法检查或智能感知 VS 有没有插件可以实现这个功能 Thanks AFAIK 您只能使用
  • 使用 bootstrap-modal 作为 Backbone.js 视图

    我正在尝试创建一个基于 Twitter 引导模式的 Backbone js 视图 该视图通过以下方式使用 Backbone 的自动事件委托 events视图的属性 不幸的是 bootstrap modal 似乎破坏了 Backbone 的事
  • 使用 Coffeescript 类和 RequireJS(或 Curljs 或类似)作为客户端浏览器库的示例

    我们想要使用 Coffeescript 开发一个浏览器 仅限客户端 库 特别是 除了纯函数之外 我们还倾向于大量使用 Coffeescript 的 类 功能 该库将相对较大 因此我们希望开始使用定义良好的模块模式 但不会达到我们希望每个咖啡
  • 如何在不污染全局命名空间的情况下公开 javascript 对象以进行单元测试

    我有一个 javascript 自动完成插件 它使用以下类 用咖啡脚本编写 查询 建议 建议集合和自动完成 每个类都有一个用 Jasmine 编写的相关规范 该插件在模块中定义 例如 function plugin call this 这可
  • Node.js 主机名/IP 与证书的替代名称不匹配

    我正在编写一些节点代码来进行 Facebook 的服务器端登录 我已经非常接近让它完全发挥作用了 但是我在请求 auth code 时遇到了麻烦 我认为这可能与 Facebook 应用程序设置有关Site URL但我尝试过的都没有成功 我使
  • 使用 Sinon.js 并阻止调用我的应用程序服务器

    足够简单的问题 我希望我们 sinon js 测试一段 javascript 以确保它调用 ajax方法同时做两件事 我不想真正访问服务器 我想模拟来自服务器的响应 所以这是 JS ajax url tickets id json data
  • Mongoose 对 Promise 拒绝处理

    我有点与 NodeJS 中的 Promise 模式作斗争 我正在数据库中查找用户 然后使用用户引用保存新实体 但是当用户不在数据库中时 我应该返回拒绝 但我不确定如何正确执行 有没有办法做得更好 顺便说一句 对不起 咖啡脚本 User fi
  • 两个对象相互依赖。那不好吗?

    当我为我的项目构建自己的系统时 我学到了很多关于设计模式的知识 我想问你一个我找不到答案的设计问题 目前我正在使用套接字构建一个带有多个客户端的小型聊天服务器 现在我有三门课 人级其中包含昵称 年龄和房间对象等信息 房间级它保存诸如房间名称
  • 有没有办法配置 Ivy 以从分支获取依赖项,而无需编辑每个相关依赖项?

    我这里有许多项目 它们之间以及与外部库之间都有依赖关系 依赖管理是通过 ivy 和我们自己的存储库完成的 我们最近不得不进行分支 因为项目的一个版本正在进行质量检查 而另一个版本则正在进行当前的开发 问题是 如果不将分支属性添加到每个内部依
  • 如何覆盖 go 模块中的依赖项?

    In dep您可以选择覆盖依赖项并使其指向不同的存储库 例如以下内容https github com kubermatic glog logrus https github com kubermatic glog logrus库一需要将以下
  • 将coffeescript 转换为javascript 或编译的java 可执行文件的Java 库?

    我想将 javascript 嵌入到 java 应用程序中 但考虑到 CoffeeScript 清理了 javascript 的一些多余语法 如果能够支持在 java 环境中执行咖啡脚本 那就太好了 我找不到任何链接 我在这里询问 以防有人
  • 使用 Jasmine 监视 Backbone.js 路由调用

    在主干路由器上监视方法调用时遇到问题 以确保它在给定路由上调用正确的方法 测试摘录 describe Router gt beforeEach gt router new App Router Backbone history start
  • Coffeescript 中的源映射 - 错误未映射到源

    我刚刚意识到源映射 一个期待已久的功能 令我印象深刻的是 这么多人聚集在一起 让咖啡脚本 浏览器 kickstart 项目等 实现这一目标 我设置了一个小测试 所以我可以了解如何使用它 咖啡脚本 注意 这里有一个故意的错误 因为y没有定义
  • node.js http.request 事件流 - 我的 END 事件去了哪里?

    我正在制定一个狡猾的计划 其中涉及使用 node js 作为另一个服务前面的代理服务器 简而言之 将传入请求分派到静态文件 如果存在 否则 将请求分派给另一个服务 我已经掌握了基础知识 但现在尝试使用 Sencha 来完成整个工作Conne
  • 有没有类似 Maven 的工具适用于多种语言?

    我正在尝试找到像 Maven 标准化构建和打包 工件存储库等 这样的工具 它不仅支持 Java 和 C C 还支持 Python 和 NET C 特别需要良好的依赖管理 我们在我们的地方经营着一家混合语言商店 当前基于 python 的本土
  • Eclipse 的 CoffeeScript 编辑器插件?

    事情是这样的 我使用 Wro4j 来处理 coffee 文件到 js 文件的转译 构建 现在我想要一个支持CoffeeScript的好的编辑器插件 并且我不想安装Aptana 我只需要CoffeeScript 不需要Python Ruby和
  • 如何解决多模块项目中模块之间的依赖关系?

    使用 Maven 一段时间后 我对 Maven 为构建架构带来的许多功能感到兴奋 特别是依赖管理 然而 我一次又一次地遇到一个问题 Maven 如何解决多模块项目之间的依赖关系 我想知道这是否是当前 Maven 实现的大缺陷和 或是否有任何

随机推荐

  • 有没有办法用静态 OpenSSL 构建静态 Qt?

    原始问题略有不同 但属于更主要问题的一部分 我正在尝试在 Windows 上使用静态 OpenSSL 将 Qt 5 2 构建为静态 我的最终目标是发送单个二进制文件无需提供 libeay32 dll 和 ssleay32 dll 然而 在我
  • 角度异步等待中的单元测试位置

    我使用 Angular 9 与 karma 测试运行器和 jasmine 测试框架进行单元测试 我只想进行单元测试app component其中有一个依赖注入 app component ts import Component Embedd
  • HTML5 Canvas - 用图像填充圆圈

    如何在圆内绘制图像 如果我做 context beginPath context arc e pageX e pageY 161 0 Math PI 2 true context closePath 然后我如何使用 fill 用我绘制的图像
  • 为组合 ggplots 添加通用图例

    我有两个水平对齐的 ggplotsgrid arrange 我浏览了很多论坛帖子 但我尝试的所有命令似乎现在都已更新并命名为其他名称 我的数据如下所示 Data plot 1 axis1 axis2 group1 0 212201 0 35
  • Django:找出菜单中已选择的项目

    我确信我以前在 Stack Overflow 上见过这个问题 但我找不到它 所以这里什么也没有 我有一个普通的 Django 菜单 它使用 url 菜单项的标签和静态名称 现在我想为已选择的菜单项设置不同的样式 但是菜单是在基本模板中渲染的
  • Objective-C HashMap 等效项

    我正在尝试转换一段使用 HashMap 的 Java 代码 其中包含一个对象作为键 一个对象包含一个值 private static HashMap
  • zfcuser 注册后添加用户角色

    我使用 Zend Framework 2 以及 ZfcUser BjyAuthorize 和 Doctrine 作为数据库 到目前为止 注册等工作进展顺利 我的问题是 注册用户没有分配角色 所以我想在注册过程中向用户添加角色 用户 我想我可
  • 如何在 Windows 上禁用调试断言对话框?

    我有一堆以批处理模式运行的单元测试 有时 Visual C 库发出的调试断言会导致崩溃 这会弹出一个对话框 并且单元测试停止运行 直到我单击 确定 关闭对话框 如何让 C 程序在遇到断言时崩溃 就像在 Linux 上一样 而不是弹出烦人的对
  • Angular Elements - 未捕获类型错误:无法构造“HTMLElement”

    我一直在尝试让 Angular 元素组件正常工作 因为我正在考虑在即将到来的项目中使用它们 我已经遵循了许多教程 都非常相似 但无法让它们工作 其中一个教程是this one https www techiediaries com angu
  • tomcat后台线程

    我有一个正在运行的 tomcat 6 20 实例 并且想通过后台线程发送电子邮件以防止电子邮件发送功能阻止请求 有什么方法可以在后台执行线程 同时仍然允许正常的页面流发生 该应用程序是用 ICEfaces 编写的 Thanks 创建一个Ex
  • Maven Mojo 映射复杂对象

    我正在尝试编写一个 Maven 插件 包括 mvn 配置参数中自定义类的映射 有谁知道等效的 Person 类会是什么样子 http maven apache org guides mini guide configuring plugin
  • ld:未找到架构 x86_64 的符号

    并感谢您提前提供的所有帮助 我是 C C 新手 正在通过深入学习来自学 我正在尝试编写一个共享 静态 不确定区别 库并编写一个简单的程序来使用该库 我可能没有以最有效的方式做这件事 如果是Python 我一周前就完成了这个项目 但我更关心的
  • 嵌入式编程中的zalloc是什么?

    我正在研究对 ESP8266 串行 WiFi 芯片进行编程 在其 SDK 示例中 它广泛使用了一个名为os zalloc我期望的地方malloc 不过偶尔 os malloc也被使用 因此它们在功能上似乎并不相同 不幸的是没有文档 任何人都
  • 应用 UIView 变换后查找帧坐标 (CGAffineTransform)

    我旋转我的视图CGAffineTransform view setTransform newTransform 应用变换后 帧值保持不变 但如何找到该帧的 旋转 或变换值 source informit com http www infor
  • 需要一个例程来检测相似但不相同的字符串

    我有一个字符串列表 其中一些自我之前的版本以来已被修改 有些更改是微不足道的 间距 相差一个单词等 我想检测只有 微小 差异的字符串 以便如果可能的话我可以尝试使用旧的翻译 细微差别 是什么意思 在我开始使用数据库之前我不会知道 您是否知道
  • 如何从 scrapy 蜘蛛回调中收集统计信息?

    如何从蜘蛛回调中收集统计数据 Example class MySpider Spider name myspider start urls http example com def parse self response stats set
  • C++11:重要的线程局部静态变量?

    我有一个X类 class X 我想做这个 void f thread local static X x 实际上我使用的是 gcc 所以关键字是 thread 但我不能 因为你只能有微不足道的 thread locals 对此最好的解决方法是
  • 将 lmer 输出到 word/excel

    我正在工作R 有一个名为lme4 执行模型 lmer rasch lt lmer Response item 1 1 STIDSTD family binomial data exampledata 让我在控制台中输出 如帖子末尾所示 我想
  • 确定无冲突集?

    假设您有一堆集合 而每个集合都有几个子集 Set1 香蕉 菠萝 橙子 苹果 羽衣甘蓝 黄瓜 洋葱 大蒜 Set2 香蕉 黄瓜 大蒜 鳄梨 番茄 设置N 现在的目标是从每个集合中选择一个子集 而每个子集必须与任何其他选定的子集不发生冲突 对于
  • Coffeescript、Backbone 和加载顺序

    考虑这个 Coffeescript 类 在一个应用程序中 每个类都位于自己的文件中 class Manager extends Person title titles manager 如果该文件在 title 对象之前加载 则会生成错误 我