在内存中加载javascript对象的正确方法
Proper way of loading javascript objects in memory?
我的网络应用程序我使用大约 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 文件中初始化对象范围。
相关文章:
- 序列化数据属性中对象的最可靠方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- 对象文字方法上的Javascript绑定不起作用
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Underscore.js某些对象的所有方法的总和
- 对象#<XMLHttpRequest>没有方法'完成'
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 丢失对象“;这个“;方法中的上下文
- 如何在ajax中调用javascript对象的方法
- 为什么页面方法对象未定义
- 如何使用在另一个文件中定义的JavaScript方法/对象
- 如何告诉JsHint忽略“未解析的函数或方法”?对象上的警告
- 使用jinja/javascript动态创建方法/对象