Javascript 文件组织和设计

2023-12-30

真正进入 Web 开发,特别是 JS,所以我想知道 JS 文件组织和职责委派方面的最佳实践是什么。我问这个是因为这种结构对我来说是有意义的:

  • 主页 (PHP)(包括对中央 JS 文件的引用)
  • MAIN Javascript 文件(包括对仅包含命名空间或 B 类中的错误代码的一个文件的引用)

虽然这对我来说很有意义,但我想知道我的观点是否错误,因为除非你采取一些技巧(不,不是谈论 jQuery),否则你不能自然地将 JS 文件包含到另一个文件中。技巧可能意味着这不会仅仅因为它不符合语言的最佳实践而完成,但就跨域问题而言并不总是如此。因此,在我深入研究草率的设计之前,我只是很好奇你们是如何划分职责的,或者只是将所有内容都放在一个文件中。


处理多个 JavaScript 文件的最佳方法是将它们设计为模块。一个主要的 JavaScript 文件应该充当一种引导加载程序,它通过设置“命名空间”(由于 JavaScript 没有类而被引用)来启动事物。例子:

var myNamespace = {};

在每个模块中,您都扩展“命名空间”。这样做有两个好处:

  • 最小化全局变量。在这种情况下,您将拥有一个全局。
  • 如果设计正确,则可以轻松混合和匹配(和重复使用)模块。

另请参阅此了解实施细节:https://stackoverflow.com/a/372​​2845/221061 https://stackoverflow.com/a/3722845/221061

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

Javascript 文件组织和设计 的相关文章

  • 单击输入[复选框]的标签将触发父级单击事件两次(淘汰)

    考虑这把小提琴 http jsfiddle net 9rkrahm6 我有一个
  • dojo dijit.form.DateTextBox 约束不起作用,datetextbox

    嗨 我是 javascript 和 dojo 的新手 我正在尝试使用两个带有下拉日历的 dijit DateTextBox 来建立数据库查询的日期范围 一旦选择了开始日期或结束日期 我想限制可用的日期 以便不可能选择按时间顺序排列在开始日期
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构

随机推荐

  • 使用 Gunicorn 部署时如何在 Flask 方法之间共享内存资源

    我使用 Flask 实现了一个简单的微服务 其中处理请求的方法根据请求数据和加载到内存中的相当大的数据结构计算响应 现在 当我使用gunicorn和大量工作线程部署此应用程序时 我只想在所有工作人员的请求处理程序之间共享数据结构 由于数据只
  • LWJGL 教程 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在不同情况下删除Excel中的重复项(VBA)?

    我需要将相应的值汇总到右侧的列中 但也需要删除重复项 这是交易 例如 如果我有从 A 到 F 的列 如果 A 到 E 列与另一行相同 则宏将删除该行并保存旧行 如果 A 至 C 列与另一现有行相同 宏将删除另一行并将 D 和 E 列中的相应
  • 用于交叉编译 BBB 应用程序的工具链

    我的本机是基于ubuntu的14 04 LTS x86 64系统 我想为Beaglebone black交叉编译应用程序和QT程序 这是一个运行在Debian 2015发行版上的基于armv7的系统 我应该在本机系统上安装哪个工具链才能完成
  • NAudio fft 结果给出所有频率的强度 C#

    我有 NAudio 的 wasapi 环回记录和数据 FFT 的工作实现 我得到的大部分数据都是正常的 但每隔一段时间 10 秒到几分钟的时间间隔 它就会显示几乎所有频率上的幅度 基本上 图片从右到左滚动 时间和频率从底部的最低频率开始按对
  • .Net 静态方法及其对并发的影响?

    我目前正在构建一个将由网络服务使用的 API 我想知道如果我使用大量的 API 来构建我的 API 会遇到什么性能问题静态方法 最初的想法是构建充当服务的专家对象 在单用户环境中 这种方法非常棒 但我很快就需要将其移植到多 并发用户环境中
  • Beyond Compare 2 忽略大小写

    如何让 Beyond Compare 2 忽略字母大小写的差异 例如 Foo Bar 和 fOo BAR 将被视为相同 在我拥有的BeyondCompare版本 版本3 3 Pro 中 您可以选择 文本重要 字符大小写除外 要找到此设置 请
  • 如何为 WKWebView 发出的请求设置自定义 HTTP 标头

    我构建了一个包含 WKWebView 的应用程序 并且 Web 视图加载的网站支持多种语言 我怎样才能改变Accept LanguageWKWebView 中的标头 或其他 HTTP 标头 我已经让它以某种方式工作 但只有获取请求才会有自定
  • 如何使正在运行的可执行文件删除自己的文件

    例如 我正在运行可执行文件 TrashClean exe 我希望它删除所有我不想要的文件 并在最后一步删除自身 硬盘驱动器上的 Trash Clean exe 我想知道在 C 中是否可以 请参见如何让您的应用程序立即自行删除 http ww
  • 使用 Spring Boot、Session 和 Redis 创建会话时未复制会话

    我正在尝试使用 Spring Cloud 的 Zuul Eureka 和我自己的服务来实现微服务架构 我有多个具有 UI 和服务的服务 每个服务都可以使用 x509 安全性对用户进行身份验证 现在我试图将 Zuul 放在这些服务之前 由于
  • 如何将文件存储到数据库中?

    如何将用户上传的文件存储到数据库中 我想将文件存储在数据库中 我们该怎么做 在后端 我将 sql 与 c net 应用程序一起使用 此解决方案适用于 SQL SERVER 2005 2008 你必须创建表VARBINARY MAX 作为列之
  • 平静力量布局的初始刻度

    我刚刚开始涉足 d3 发现学习曲线相当陡峭 这个过程与我习惯的完全不同 而且数学大多超出了我的理解范围 无论如何 我的项目由代表系统之间集成地图的部队布局组成 这部分效果非常好 但我确实有一个主要问题 这也体现在 Michael Bosto
  • Ember.js - 正确执行(结构、包含、一般问题)

    我正在使用 ember js 并且不知何故陷入了寻找如何以正确的方式构建结构的困境 我可以跟随所有例子 http emberjs com guides 但将它们放在一起时遇到一些问题 我正在使用 require js 和车把 我的目录结构如
  • 总结不同格式日期的小时数。 C#

    我有个问题 我需要用代码总结在办公室的工作时间 我从 SQL Server 获取的日期没有问题 但我有不同的格式 例如 2019 09 23 14 54 23 2019 09 23 14 54 23 or 2019 09 23 14 54
  • Android volley 在所有请求完成时获取回调

    我正在使用 volley 对一系列请求进行排队 当这些请求发生时 我向用户显示一个进度对话框 有没有办法可以检查所有这些请求何时完成 这就是我要的 Show progress bar for int i 0 i
  • std::is_same 结果与左值和右值引用

    我正在将 std is same 实用程序函数与右值和左值引用结合使用 并遇到了奇怪的行为 考虑这个检查变量 t 类型的函数模板 我正在使用 VS 2013 struct Test template lt class T gt void h
  • 使用子进程从 python 执行时,ssh 未被识别为命令?

    这是我的代码 import subprocess import sys HOST xyz3511 uhc com Ports are handled in ssh config since we use OpenSSH COMMAND up
  • jQuery 将小数添加到 SELECT,没有重复项并可选择删除

    好的 这里是 需要过滤掉重复项并能够删除添加到选择框的值 Number
  • 检测 Vue-Router 导航卫士中的后退按钮

    路线如何改变对于我的情况很重要 所以 我想捕捉浏览器或 gsm 的后退按钮何时更改路线 这就是我所拥有的 router beforeEach to from next gt if IsItABackButton from meta some
  • Javascript 文件组织和设计

    真正进入 Web 开发 特别是 JS 所以我想知道 JS 文件组织和职责委派方面的最佳实践是什么 我问这个是因为这种结构对我来说是有意义的 主页 PHP 包括对中央 JS 文件的引用 MAIN Javascript 文件 包括对仅包含命名空