God’s Eye View:地球视图、AI 交互与真实数据边界
God’s Eye View 架构:共享构造器、注入来源与资源清理责任
追踪场景、控制、数据和工具的启动销毁顺序,并区分可复用协议与单页面独立应用状态。
你将学会
- 应用装配在启动前保持静止
- 销毁顺序体现依赖关系
- 可复用控制器不会消除独立壳的限制
开始前需要
- 了解 JavaScript 和 JSON 基础
- 理解坐标与来源时间的区别
借助合成案例说明来源记录、校验、图层呈现和可选 AI 交互各自的责任。
先看结论
- 构造后需调用 start 才启动。
- 销毁控制组件时仍需保留数据依赖。
- 可复用控制器不证明独立壳支持多个 viewer。
应用装配在启动前保持静止
应用导出接收 scene、controls、data、tools 四个构造器。指南说明导入和构造不会创建 viewer 或发起请求,调用 start 才开始有序初始化。后面的构造器会收到前面产生的组件对象,以及共享取消信号。
配置属于调用方闭包,生命周期控制器不会自行发现模块,也不解释环境变量和服务端点。这种分离使测试能够注入合成来源,而不用重写地球渲染器,也无需把测试样本伪装成实时数据,从而让输入与显示责任更加清晰。
销毁顺序体现依赖关系
启动顺序是场景、控制、数据、工具,但销毁顺序是工具、控制、数据、场景,并非简单倒序。控制组件必须趁数据管理器和 viewer 仍存在时取消恢复任务;同一阶段内部注册的清理回调则按逆序运行。
每取得一个资源,应立即登记清理,并在继续 await 之前完成登记。destroy 会取消共享信号、等待正在构造的组件,再执行注册清理。如果依赖不响应取消,销毁也可能延迟;返回一个 Promise 并不意味着资源已经瞬间释放。
可复用控制器不会消除独立壳的限制
指南说明重复 start 和 destroy 分别复用对应 Promise,销毁是终态。ready 只代表构造器全部返回,不代表后台数据都已完成;冻结的组件快照也是浅层冻结,组件实例本身仍然可变,不能误读为深层不可变架构。
独立应用仍有页面级资源所有者,每页只允许一个独立实例,关闭后需要刷新页面再启动。它不是自动支持多个 viewer 的可移除小组件。本系列阅读控制器和指南,但没有执行浏览器生命周期或共享渲染器测试。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
画出四个构造器依赖。
- 2
获得资源时立即登记清理。
- 3
把取消信号传入等待操作。
- 4
分别验证终态销毁与数据就绪。
可复制示例
{
"架构记录": true,
"启动顺序": [
"scene",
"controls",
"data",
"tools"
],
"停止顺序": [
"tools",
"controls",
"data",
"scene"
],
"ready表示全部来源完成": false,
"每页独立实例": 1,
"已执行生命周期": false
}常见问题
销毁顺序就是启动顺序的反转吗?
不是,控制需要先于数据停止,才能安全取消恢复任务。
ready 表示全部公开数据加载完成吗?
不是,指南只把它定义为所有构造器已返回。
资料来源
- God’s Eye View / docs/APPLICATION.md来源核查 2026-09-14
- God’s Eye View / src/app/application.js来源核查 2026-09-14
- God’s Eye View / src/services/application.js来源核查 2026-09-14
- God’s Eye View / docs/CURRENT-STATE.md来源核查 2026-09-14