高级

URL 配置分享

通过 URL hash 一键加载完整模型配置

Dreapex TMM 支持把整个模型快照编码进 URL 的 hash 部分,链接形如:

https://tmm.dreapex.com/#config=<base64url>

只要用户在浏览器中打开这种链接,前端会在加载完成前把模型恢复到链接中携带的状态。这给了远程协作一条零后端依赖的复现路径:把链接发出去,对方直接看到一致的结构、光学参数、Sweep 和优化器配置。

适用场景

场景推荐
在聊天工具里发一个可点开的复现链接URL 分享
跨电脑迁移完整模型 + 计算偏好优先 .tmm 文件
AI Agent 在远程浏览器里完成配置后给用户看结果URL 分享(链接由 Agent 端生成)
需要永久存档.tmm 文件

URL 链接是单向短期复现工具:体积有上限、会随 URL 长度膨胀、容易在转发时被截断。需要长期保存仍然推荐 .tmm 文件。

URL Payload 结构

被编码的对象等同于 localStorage 自动保存的快照,外加一个可选的 settings

{
  version: 1,
  savedAt: string,
  data: {
    structure:    StructureElement[],
    optics:       Optics,
    surroundings: Surroundings,
    sweepList:    SweepItem[],
    optimizer: {
      objectives:        OptimizationObjective[],
      variables:         OptimizationVariable[],
      algorithmSettings: GridOptimizationSettings
    }
  },
  // 仅 URL 分享时出现;localStorage 快照中不含此字段
  settings?: SettingsState
}

编码管线为 JSON → DEFLATE → base64url → URL hash,整个过程无任何后端调用。

导入规则

数据类别导入方式
模型数据(data直接应用,按模块进行 Zod 校验,单模块失败时降级为默认值
性能设置仅在分享链接中至少有一项 > 当前值 时弹出确认对话框;用户确认后才更新;其余字段静默跳过
主题、语言、其他偏好不导入(属于本地偏好)
计算结果不包含(数据量大且可重算)

性能设置仅覆盖以下四项:maxConcurrentRequestsmaxSweepCombinationsmaxCalculationDataPointsmaxSingleRequestDataPoints。这是为了让分享方提供的「能完整跑完该模型」的保护阈值能向用户传递,但不会偷偷压低用户的现有配置。

与本地自动保存的优先级

页面启动时如果 URL hash 带 #config=

  1. URL 配置导入先执行。
  2. 即使导入失败、即使 hash 立刻被清空,本次会话内的 localStorage 自动恢复都会被跳过。
  3. 之后的编辑照常触发 autosave。

这是为了尊重用户显式带分享链接进入页面的意图,避免老的 autosave 数据悄悄盖掉刚刚导入的内容。

体积安全

编码后 base64url 字符串超过 50,000 字节时,会拒绝生成链接并抛出错误。典型配置压缩后约 0.4–4 KB,远低于上限;只有结构层数 + Sweep 组合 + 大体量入射光谱同时叠加时才需要关注。

Agent / 远程浏览器侧

启用调试桥(URL 加 ?simulation_debug=1)后,可在浏览器控制台里调用:

const url = window.__SIMULATION_DEBUG__.getShareableUrl()

返回当前模型对应的完整分享链接,方便远程 AI Agent 把链接发回给用户。生产页面默认不暴露此接口。

失败提示

Toast含义排查方向
已从分享链接加载配置全部模块导入成功无需处理
分享链接已部分导入部分模块结构异常被降级为默认值在 toast 中查看模块列表,逐项检查
分享链接导入失败payload 损坏或不可解码链接可能在转发时被截断;要求对方重新发送完整 URL

.tmm 文件的取舍

维度.tmm 文件URL 分享
体积上限实际无上限base64 后 50,000 字节
是否容易被截断易(聊天工具 / 邮件预览常截断长 URL)
包含范围模型快照模型快照 + 部分性能设置
适合归档
适合一键复现否(需对方下载文件)是(点开即用)

实际工作中常用组合:发链接给对方做快速复现,同时把对应 .tmm 文件归档到项目目录。

Copyright © 2026 Dreapex