在内存中加载javascript对象的正确方法

Proper way of loading javascript objects in memory?

本文关键字:方法 对象 javascript 内存 加载      更新时间:2023-09-26

我的网络应用程序我使用大约 30 个 js 文件,每个文件包含 1 个函数。所有这些函数现在都是自调用的,并且相互引用。

这样做的问题是索引中脚本的顺序.jsp很重要。如果对尚未调用的函数调用方法,我们会得到一个未定义的错误。

有一段时间,我们可以通过控制<script>标签的顺序来克服这个问题,但我想通过使用加载器脚本来做到这一点。

设置了一个小提琴来展示我的概念。我最担心的是我必须全局声明我的对象,以便可以在 jquery(document).ready() 函数中访问它们。

这是一个好的模式吗?任何提示都非常感谢!

您可以使用 RequireJS 或类似的加载器,它们将为您处理脚本依赖项。

您需要修改每个 JS 文件,使其成为模块,其方式与此示例类似:

// File: module3.js
define(["module1", "module2"], function(m1, m2) {
    // Here, module1 and module2 are guaranteed to be loaded.
});

然后,您将创建一个"主"脚本(我通常称之为main.js)并需要几个模块:

require(["module3"], function (m3) {
  // Here module3 is loaded, as well as module1 and module2 
  // - because module3 depends on them.
});

并将其放入您的HTML中:

<script data-main="scripts/main" src="scripts/require.js"></script>

尝试构建服务器端架构,以每页提供适当的 js 文件(和其他静态文件)。为页面创建 1 个缩小的 js 文件,并在 html 文件中初始化对象范围。