javascript - 使用多个 Javascript 文件的最佳方法是什么?
问题描述
所以我打算在某种意义上创建一个“网络街机”,并且我希望在选择不同的游戏时运行不同的 Javascript 文件,这样做的最佳方法是什么?
是否可以通过单击 HTML 页面上的某个按钮来运行 Javascript 文件?我已经尝试过使用模块,但目前我的水平似乎有点复杂,并希望有一个更简单的替代方案。
谢谢!
解决方案
您可以在各种文件中包含script
标签。src
需要注意的是,您必须注意加载它们的顺序。此外,您可以定期声明变量const/let/var
并在之后加载的文件中定期使用它们。
<!DOCTYPE html>
<html>
<head>
<script src="settings.js"></script>
<script src="loop.js"></script>
</head>
</html>
// settings.js
const worldData = {
size: [230, 342]
};
// loop.js
console.log(worldData); // logs `{ size: [230, 342] }` because this file is loaded after `settings.js`
function draw() { /* omit */ }
// call `draw` in a loop somewhere with HTML5 Canvas or P5
但是,我强烈建议使用 ES 模块。它们使您的代码更易于理解,例如以下项目:
<!DOCTYPE html>
<html>
<head>
<script src="loop.js" type="module"></script> <!-- Note that we only need this entry file -->
</head>
</html>
// settings.js
export const worldData = {
size: [230, 342]
};
// loop.js
import { worldData } from "./settings.js" // automatically sends request and gets script exports
console.log(worldData); // logs `{ size: [230, 342] }` because we already imported it
function draw() { /* omit */ }
// call `draw` in a loop somewhere with HTML5 Canvas or P5
ES Modules 版本要好得多,因为如果您有许多文件访问 . worldData
,那么您可以只做一个,import { worldData } from "/settings.js"
而不必确保您的文件以正确的顺序加载。
推荐阅读
- css - 悬停时的 CSS 动画持续时间不起作用
- python-3.x - 订阅者自动断开连接
- c# - 为什么我不能禁用按钮?
- excel - 无法获取列表属性。无效参数运行时错误 (-2147024809 (80070057)
- java - 放心 -> 如何传递具有数组项的查询参数或表单参数,以便所有选项都应该通过
- java - Flux doOnComplete 运算符,可以接受参数的替代方案有哪些?
- python - Pandas DataFrame Resample to OHLC:如何将最后一个关闭值设置为下一个打开?
- jenkins - 为什么没有使用 Jenkins 克隆 Bitbucket 源代码存储库?
- java - 为什么超类不调用子类方法?
- batch-file - 运行注册表问题。删除脚本打开文件夹