Files

1.1 KiB

  • 跨子模块共享可变状态与 DOM 引用集中放在 dbc.js 导出的 state/el 对象上,各子模块通过 import 获取同一引用,利用 ES Module live binding 保证同步。
  • 对外部不可信文本一律使用 escapeHtml/sanitizeHtml 后再插入 innerHTML,所有数据属性赋值前先经 escapeHtml,禁止拼接 HTML 字符串直接使用用户输入。
  • 网络请求统一使用 new AbortController() + setTimeout 双保险取消,防止在连接 reset 等边缘场景下 await 永久挂起。
  • 高频本地持久化采用「收集事件 → scheduleCanPersist → 防抖定时器 → saveCanSessionNow」模式,并在 writePayload 失败时逐级减少 payload(压缩历史→清 signalValues)以容忍 localStorage 配额不足。
  • DLC/字节数组输出统一走 padHex(value, width) 与 bytesToHex(bytes),确保十六进制展示宽度一致、全大写。
  • 错误信息分层展示:完整描述走 buildSendResponseText,简短文案走 buildSendResponseShort 去掉冗余前缀,使历史记录空间有限时仍保留核心原因。